Cox*_*xer 5 parsing scala date simpledateformat
我正在尝试使用以下代码将一串文本转换为日期:
//Input String
str = "14/01/26,12:13:13+00"
//Format
format = new java.text.SimpleDateFormat("yy/MM/dd,HH:mm:ssz")
//Conversion
format.parse(str)
Run Code Online (Sandbox Code Playgroud)
但我得到以下内容:
例外:无法解释的日期:"14/01/26,12:13:13 + 00"
为了正确解析这个日期,我的格式如何更改?
+00是无效的时区.它应该是+0000.
您可以添加00到str和替换z用Z的模式使用RFC 822 time zone格式:
new java.text.SimpleDateFormat("yy/MM/dd,HH:mm:ssZ").parse(str + "00")
// java.util.Date = Sun Jan 26 16:13:13 MSK 2014
Run Code Online (Sandbox Code Playgroud)
java.util.Date(和java.text.SimpleDateFormat)不是项目的最佳选择.有关详细信息,请参阅此答案.
作为奖励DateTimeFormat,Joda-Time您可以str无需修改即可解析:
// I'm using the same pattern with `Z` here
DateTimeFormat.forPattern("yy/MM/dd,HH:mm:ssZ").parseDateTime(str)
// org.joda.time.DateTime = 2014-01-26T16:13:13.000+04:00
Run Code Online (Sandbox Code Playgroud)