linux13位时间戳,Kotlin 处理Linux时间戳

思路

1. 获取时间

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

2. 处理时间

在使用Calendar时,可以直接由Calendar的set方法对于时间进行设置

由于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时间戳转换器

更新时间

7/10/2018

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值