【问题标题】:Groovy date format for UTC with millisecondsUTC 的 Groovy 日期格式,以毫秒为单位
【发布时间】:2014-01-04 16:13:41
【问题描述】:

我很难找到用这种格式格式化 UTC 时间戳的好方法:yyyyMMdd-HH:mm:ss.<three additional digits>

我无法找到任何代表毫秒/百分之几的字符,我什至不确定这是否可能解析那种格式。

理想情况下,我想使用日期库中的parseToStringDate

我的计划 b 是将yyyyMMdd-HH:mm:ss 转换为毫秒,然后将最后三位数字添加到该数字。

【问题讨论】:

  • 我知道 OP 指定的格式,但其他人可能也对 epoch System.currentTimeMillis()) 感兴趣。

标签: date datetime groovy


【解决方案1】:

使用yyyyMMdd-HH:mm:ss.SSS

这也会让您获得毫秒数。

测试代码:

def now = new Date()
println now.format("yyyyMMdd-HH:mm:ss.SSS", TimeZone.getTimeZone('UTC'))

【讨论】:

  • 我试过 .SSS 没用。我现在设置了时区,它好一点,事情是我有一个字符串进来,而 parseToStringDate 给了我一个例外。关于如何导入当前日期并从中获取日期的任何想法?
  • 您好!所以基本上 now.parse("yyyyMMdd-HH:mm:ss.SSS","20140104-11:00:01:001") 给了我我想要的东西,但该方法已被弃用!
  • @marko 使用静态解析方法为Date.parse("yyyyMMdd-HH:mm:ss.SSS","20140104-11:00:01.001") 并记住毫秒格式为. 而不是:
  • 请注意,TimeZone.setDefault(....) 可能会影响您的应用程序的其他部分,您可能希望也可能不希望 UTC 作为默认值!如果您需要,以下内容已本地化:now.format("yyyyMMdd-HH:mm:ss.SSS", TimeZone.getTimeZone('UTC'))
  • 格式似乎是 '"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'' for wss4j
【解决方案2】:

我会这样转换:

def now = new Date()
println now.format("YYYYMMdd-HH:mm:ss") 

【讨论】:

  • 这里没有毫秒。
【解决方案3】:

你可以试试这个:

TimeZone.getTimeZone('UTC')
Date date = new Date()
String newdate = date.format("YYYY-MM-dd HH:mm:ss.Ms")
log.info newdate

【讨论】:

  • 你从不使用TimeZone.getTimeZone('UTC')的结果,所以这行实际上没有任何作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-11
  • 2019-05-04
  • 1970-01-01
  • 1970-01-01
  • 2019-01-10
  • 1970-01-01
相关资源
最近更新 更多