经常遇到处理时间与获取当前时间,记录一下:
1.获取时间
1)获取当前时间
dateFormat规定好想要的数据格式 常用的对应如下:
格式 | yyyy | MM | dd | HH | mm | ss |
对应 | 年 | 月 | 日 | 小时 | 分钟 | 秒 |
编程中常用的:
常用模式 | yyyyMMdd | yyyy-MM-dd | HHmmss | HH-mm-ss |
val dateFormat = new SimpleDateFormat("yyyyMMdd")
val cla = Calendar.getInstance()
cla.setTimeInMillis(System.currentTimeMillis())
val date = dateFormat.format(cla.getTime)
val hour = cla.get(Calendar.HOUR_OF_DAY).toString
val min = cla.get(Calendar.MINUTE).toString
打印结果:
date: 20200426
hour: 13
min: 54
2)获取指定时间
可以通过Date类和时间戳两种形式设置时间
方法 | Calender.setTime(date: Date) | Calender.setTimeMillis(millis: Long) |
参数 | new Date(”xxxxxxxx") | time stamp |
setTime:
val dateFormat = new SimpleDateFormat("yyyyMMdd")
val cla = Calendar.getInstance()
val define = dateFormat.parse("20200426")
cla.setTime(define)
setTimeInMillis:
val dateFormat = new SimpleDateFormat("yyyyMMdd")
val cla = Calendar.getInstance()
cla.setTimeInMillis(Your_time_stamp)
设置完成后,可以根据需求获取以下信息(非函数全部接口):
// 时间信息
println(cla.getTime)
// 日期
println(cla.get(Calendar.DATE))
// 小时
println(cla.get(Calendar.HOUR_OF_DAY))
// 一周的第几天
println(cla.get(Calendar.DAY_OF_WEEK))
// 一年的第几天
println(cla.get(Calendar.DAY_OF_YEAR))
Sun Apr 26 14:07:19 CST 2020
26
14
1
117
2.获取时间戳
1)当前时间戳
val now = new Date()
println(now.getTime)
1587881379485
2)指定日期时间戳
val dateFormat = new SimpleDateFormat("yyyyMMdd")
val date = dateFormat.parse("20200426")
println(date.getTime)
1587830400000
3.获取时间差
有了上面的基础,直接解析两个日期,然后将时间戳的long转回day的单位即可
val dateFormat = new SimpleDateFormat("yyyyMMdd")
val st = dateFormat.parse("20200101")
val end = dateFormat.parse("20200104")
val tm1 = st.getTime
val tm2 = end.getTime
val btDays = (tm2-tm1)/(1000*3600*24)
相差:3天