美文网首页我爱编程
Kotlin 处理Linux时间戳

Kotlin 处理Linux时间戳

作者: Kerwin_Thomas | 来源:发表于2018-06-14 21:39 被阅读987次

思路

1. 获取时间

可以采用的方式有直接获取系统时间System.currentTimeMillis()或者使用Calendar类获取时间

2. 处理时间

  1. 在使用Calendar时,可以直接由Calendarset方法对于时间进行设置
  2. 由于Calendar的时间格式并不是我们希望得到的Linux时间戳格式,所以我们需要使用时间格式模板,通过生成与解析方法进行转换,得到最终的Linux时间戳的时间格式

注意

Calendar 的时间设置与北京时间相差八小时,当直接设置当前的小时数据时,需考虑到这一点

例:如果需要北京时间23:00:00,则需设置HOUR_OF_DAY = 15

问题

Kotlin在线编辑器中运行时,上面注意中的处理是没有问题的,会得到正确结果;而在Android中实际使用时,却应该使用标准的设置,即设置HOUR_OF_DAY = 23

造成这样结果的原因还不清楚,欢迎留言

实现

自己写了几种可能会常用的获取时间戳的函数,供大家直接使用,代码使用Kotlin实现

得到当前的时间戳

fun getCurrentTimeStamp(): String {
    var time = System.currentTimeMillis()
    var nowTimeStamp = (time / 1000).toString()
    return nowTimeStamp
}

得到前一小时的时间戳

fun getTimeStampAtOneHourAgo(): String {
    var calendar = Calendar.getInstance()
    calendar.setTimeInMillis(System.currentTimeMillis())
    calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) - 1)
    var template = SimpleDateFormat("dd/MM/yyyy HH:mm:ss") // SimpleDateFormat
    var timeStr = template.format(calendar.time) // String
    return (template.parse(timeStr).time / 1000).toString()
}

得到当天23:59: 59 的时间戳

fun getTimeStampAtTheEndOfDay(): String  {
    var calendar = Calendar.getInstance()
    calendar.setTimeInMillis(System.currentTimeMillis())
    calendar.set(Calendar.HOUR_OF_DAY, 23)
    calendar .set(Calendar.MINUTE, 59)
    calendar.set(Calendar.SECOND, 59)
    calendar.set(Calendar.MILLISECOND, 59)

    var template = SimpleDateFormat("dd/MM/yyyy HH:mm:ss") // SimpleDateFormat
    var timeStr = template.format(calendar.time) // String
    return (template.parse(timeStr).time / 1000).toString()
}

传入时间字符串及模板,返回时间的模板字符串

fun string2Date(str: String, format: String): Date {
    try {
        return SimpleDateFormat(format).parse(str)
    } catch (e: ParseException) {
        e.printStackTrace()
    }
    return Date()
}

一个好用的在线Linux时间戳转换器

http://tool.chinaz.com/Tools/unixtime.aspx

更新时间

7/10/2018

相关文章

  • Kotlin 处理Linux时间戳

    思路 1. 获取时间 可以采用的方式有直接获取系统时间System.currentTimeMillis()或者使用...

  • 时间戳处理

    需求是 获取当天零点的13位时间戳 分析:时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间...

  • Linux时间相关

    Linux时间修改为北京时间 当前时间转换时间戳 指定时间转换时间戳 时间戳转化成时间

  • JavaScript处理日期时间

    JavaScipt 处理时间 基本的时间处理 获取当前时键戳 时间戳转换为字符串时间 字符串转换时间戳 推荐阅读:...

  • 时间戳 转 时间 处理

    #pragma mark时间处理+ (NSString*)distanceTimeWithBeforeTime:(...

  • 前端-JavaScript-后端-Python 时间处理

    JavaScript经验 前后端时间处理,最好统一使用时间戳,这样两边处理时更灵活 获取当前时间的时间戳,单位是毫...

  • Pandas 处理时间戳索引

    1、对时间序列的处理: 2、pandas 的 Timestamp 方法生成时间戳: 3、pandas 的 to_d...

  • 日期时间

    0. time 模块 概念:提供 处理 时间 和 表示 之间转换 的功能 操作获取当前时间戳# 时间戳:从 0 ...

  • python之time模块1

    time 模块 time 模块主要用于一些 日期 和 时间 的处理 获取当前时间戳 time.time() 时间戳...

  • 基于时间戳的并发控制

    实现基于时间戳的事务处理原型。 TO算法流程 维护若干时间戳事务时间戳:以事务开始时间标识事务的先后顺序,表示为t...

网友评论

    本文标题:Kotlin 处理Linux时间戳

    本文链接:https://www.haomeiwen.com/subject/xxyueftx.html