kotlin将字符串日期转化为时间戳

将字符串日期转化为时间戳

/**
 * 日期字符串(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这天是:星期四

参考:
Java获得任意一个时间的下一天的时间
Java中时间与时间戳的转换
java怎么获取当前日期是星期几?

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值