我在寻找一种好的方式来格式化一个带有UTC时间戳的字符串,格式为:yyyyMMdd-HH:mm:ss.<三位额外数字>
我没有找到任何代表毫秒或百分之一秒的字符,我甚至不确定能否解析这个格式。
理想情况下,我希望使用Date库中的parseToStringDate
函数。
我的备选方案是将yyyyMMdd-HH:mm:ss
转换为毫秒,然后将最后三个数字添加到该数字中。
使用 yyyyMMdd-HH:mm:ss.SSS
这个格式可以获得毫秒。
测试代码:
def now = new Date()
println now.format("yyyyMMdd-HH:mm:ss.SSS", TimeZone.getTimeZone('UTC'))
Date.parse("yyyyMMdd-HH:mm:ss.SSS","20140104-11:00:01.001")
,并记住毫秒是用 .
而不是 :
格式化的。 - dmahapatroTimeZone.setDefault(...)
可能会影响您的应用程序中其他部分的默认时区设置,您可能希望或不希望将UTC作为默认值!如果您需要本地化,请使用以下代码:now.format("yyyyMMdd-HH:mm:ss.SSS", TimeZone.getTimeZone('UTC'))
。 - DarthPablo我会这样转换它:
def now = new Date()
println now.format("YYYYMMdd-HH:mm:ss")
TimeZone.getTimeZone('UTC')
Date date = new Date()
String newdate = date.format("YYYY-MM-dd HH:mm:ss.Ms")
log.info newdate
TimeZone.getTimeZone('UTC')
的结果,因此该行实际上没有任何作用。 - Baptiste Mathus
System.currentTimeMillis())
感兴趣。 - MarkHu