Groovy无法将String解析为Date

时间:2015-08-28 12:01:47

标签: date grails groovy

我想使用Groovy将String解析为Date

但我无法解析java.lang.StringDate

我的代码如下所示。

import groovy.time.*

def date = new Date.parse("EEE MMM d HH:mm:ss z yyyy", "Fri Aug 28 11:12:11 +0000 2015")

但我收到如下错误:

Unparseable date: "Fri Aug 28 11:12:11 +0000 2015". Stacktrace follows:
java.text.ParseException: Unparseable date: "Fri Aug 28 11:12:11 +0000 2015"
    at java.text.DateFormat.parse(DateFormat.java:366)

我该如何解析它?

2 个答案:

答案 0 :(得分:1)

您需要设置相应的Locale.setDefault(Locale.US) def date = Date.parse("EEE MMM dd HH:mm:ss Z yyyy", "Fri Aug 28 11:12:11 +0000 2015")

dd

其他错误为d,而不是Zz,而不是EditText

答案 1 :(得分:1)

有一个奇怪的名字Date.parseToStringDate采用这种格式并且与语言环境无关:

groovy:000> Date.parse("EEE MMM dd HH:mm:ss Z yyyy", "Fri Aug 28 11:12:11 +0000 2015")
Unparseable date: "Fri Aug 28 11:12:11 +0000 2015"
groovy:000> Date.parseToStringDate("Fri Aug 28 11:12:11 +0000 2015")
===> Fri Aug 28 13:12:11 CEST 2015
groovy:000> Locale.default
===> ja
groovy:000> Locale.default = Locale.US
===> en_US
groovy:000> Date.parse("EEE MMM dd HH:mm:ss Z yyyy", "Fri Aug 28 11:12:11 +0000 2015")
===> Fri Aug 28 13:12:11 CEST 2015
groovy:000> Date.parseToStringDate("Fri Aug 28 11:12:11 +0000 2015")
===> Fri Aug 28 13:12:11 CEST 2015