Groovy无法解析字符串日期
问题描述:
我想使用Groovy解析String
至Date
。Groovy无法解析字符串日期
但我不能解析到以下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)
我如何解析呢?
答
您需要设置相应的Locale
:
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
。
答
还有就是名字古怪的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
不过是你进入的数据'周五8月28日11时12分十一秒+0000 2015'?这是来自一个表单还是什么? –
它只是字符串 – SpaceNet