将字符串日期转化为时间戳
/**
* 日期字符串(2022-06-16)转换为时间戳
*/
fun dateStr2timeStamp(dateStr : String) : Long{
val pattern = "yyyy-MM-dd"
val simpleDateFormat = SimpleDateFormat(pattern)
val date = simpleDateFormat.parse(dateStr)
val timeStamp = date.time
return timeStamp
}
注意:
这里格式必须要匹配,比如输入参数变成:2022/6/7
,那么pattern需要相应变为 yyyy/M/d
,当只有一位不需要补0
就变成一个M
或一个d
,时分秒同理。(需要补0
比如:2022/06/07
pattern为 yyyy/MM/dd
)
将时间戳转为字符串日期
/**
* 将时间戳转为字符串日期
* */
fun timeStamp2DateStr(timeStamp : Long) : String{
val date = Date(timeStamp)
val pattern = "yyyy-MM-dd HH:mm:ss"
val simpleDateFormat = SimpleDateFormat(pattern)
val dateStr = simpleDateFormat.format(date)
return dateStr
}
调用输出结果
val dateStr = timeStamp2DateStr(1655368854321)
println("----->$dateStr")
结果:
----->2022-06-16 16:40:54
得到任意日期的下一天
想法就是转化为时间戳,然后加上一天的时间,然后再转化为字符串日期
/**
* 得到任意日期的下一天
* */
fun getNextDateStr(dateStr: String):String{
val timeStamp = dateStr2timeStamp(dateStr)
val dayTime = 1 * 1000 * 60 * 60 * 24
val nextDayTimeStamp = dayTime + timeStamp
val nextDayDateStr = timeStamp2DateStr(nextDayTimeStamp)
return nextDayDateStr
}
调用输出结果
val dateStr = "2022-06-16"
val nextDayDateStr = getNextDateStr(dateStr)
println("--->$dateStr 下一天是 $nextDayDateStr")
结果:
--->2022-06-16 下一天是 2022-06-17
得到任意一天是星期几
/**
* 得到任意一天星期几
*/
fun getDayOfWeek(dateStr: String) : String{
//星期天为每个星期第一天
val weekArray = listOf("星期天","星期一","星期二","星期三","星期四","星期五","星期六")
val timeStamp = dateStr2timeStamp(dateStr)
val calendar = Calendar.getInstance()
val date = Date(timeStamp)
calendar.time = date
//week取值为1-7
val week = calendar.get(Calendar.DAY_OF_WEEK)
val weekIndex = if(week - 1 < 0) 0 else week - 1
val weekStr = weekArray[weekIndex]
return weekStr
}
调用输入结果
val dateStr = "2022-06-16"
val weekStr = getDayOfWeek(dateStr)
println("--->${dateStr}这天是:$weekStr")
结果:
--->2022-06-16这天是:星期四