什么是时间戳
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。通俗的讲,时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据
什么是标准格式化时间
比如现在的时间,北京时间2021年12月6号10点57分54秒,对应的标准格式化时间就是“Mon Dec 06 10:57:54 GMT+08:00 2021”
1 2 3
| Calendar calendar = Calendar.getInstance(); Log.d("标准格式化时间: ",calendar.getTime());
|
时间转换为时间戳
注意下,Calendar的getTime()得到的是标准格式化时间,而在这里date已经是标准格式化时间,Date的getTime()得到的是一个时间戳
1 2 3 4 5 6 7
| private String dateToStamp(String dateValue) throws ParseException { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = simpleDateFormat.parse(dateValue); long timeStampValue = date.getTime(); return String.valueOf(timeStampValue); }
|
时间戳转换为时间
1 2 3 4 5 6 7
| private String stampToDate(long stampValue){ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(stampValue); String dateValue = simpleDateFormat.format(date); return dateValue; }
|
当前时间信息
兜兜转转,无非是围绕着一个标准格式化时间转来转去
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| private void dateShow() { Calendar calendar = Calendar.getInstance(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = calendar.getTime(); String dateValue = simpleDateFormat.format(date); long dateStamp = date.getTime();
int Year = calendar.get(Calendar.YEAR); int Month = calendar.get(Calendar.MONTH); int Day = calendar.get(Calendar.DAY_OF_MONTH); int Hour = calendar.get(Calendar.HOUR_OF_DAY); int Minute = calendar.get(Calendar.MINUTE); int Second = calendar.get(Calendar.SECOND);
Log.d(TAG, "dateShow: 标准格式化时间: " + date); Log.d(TAG, "dateShow: 时间格式对应时间: " + dateValue); Log.d(TAG, "dateShow: 时间戳: " + dateStamp); Log.d(TAG, "dateShow: " + Year + "年" + (Month + 1) + "月" + Day + "日" + Hour + "时" + Minute + "分" + Second + "秒"); }
|
输出
1 2 3 4
| D/MainActivity: dateShow: 标准格式化时间: Mon Dec 06 12:00:40 GMT+08:00 2021 D/MainActivity: dateShow: 时间格式对应时间: 2021-12-06 12:00:40 D/MainActivity: dateShow: 时间戳: 1638763240386 D/MainActivity: dateShow: 2021年12月6日12时0分40秒
|
从时间戳中截取日期
怎么简单的获取时间戳中的年月日,不能转换为时间格式然后再用substring截取吧。。。
1 2 3 4 5 6 7 8 9 10
| private void stamp(long timeStamp) { Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(timeStamp);
int Year = calendar.get(Calendar.YEAR); int Month = calendar.get(Calendar.MONTH); int Day = calendar.get(Calendar.DAY_OF_MONTH); Log.d(TAG, "stamp: " + Year + "年" + (Month + 1) + "月" + Day + "日"); }
|