我想使用Groovy将String
解析为Date
。
但我无法解析java.lang.String
到Date
。
我的代码如下所示。
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)
我该如何解析它?
答案 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
,而不是Z
和z
,而不是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