字符串到日期解析java
我想将字符串字符串到日期解析java,java,date,datetime,Java,Date,Datetime,我想将字符串Thu Apr 03 07:53:53 BST 2014解析为java中的日期对象。我不知道如何处理“BST”部分-我已经试过了 date = new SimpleDateFormat("E MMM dd HH:mm:ss yyyy", Locale.ENGLISH).parse(string); 但是获得不可解析的日期:“2014年4月3日星期四07:53:53英国夏令时”你错过了英国夏令时的部分。对其使用zzz: date = new SimpleDateFormat("E M
Thu Apr 03 07:53:53 BST 2014
解析为java中的日期对象。我不知道如何处理“BST”部分-我已经试过了
date = new SimpleDateFormat("E MMM dd HH:mm:ss yyyy", Locale.ENGLISH).parse(string);
但是获得不可解析的日期:“2014年4月3日星期四07:53:53英国夏令时”你错过了英国夏令时的部分。对其使用
zzz
:
date = new SimpleDateFormat("E MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH).parse(string);
您可以使用库。这是因为日期与格式字符串不匹配。日期有时区,但格式字符串没有
Thu Apr 03 07:53:53 BST 2014
E MMM dd HH:mm:ss ??? yyyy
将时区(z
)添加到格式字符串可以解决您的问题:
date = new SimpleDateFormat("E MMM dd HH:mm:ss z yyyy", Locale.ENGLISH)
.parse(string);
使用您的语言环境尝试此选项 每种模式的描述
EEE - Day name in week (in 3 chars)
MMM - Month in year (in 3 chars)
dd - Day in month (in 2 digits)
kk - Hour in day (1-24) (in 2 digits)
mm - Minute in hour (in 2 digits)
ss - Second in minute (in 2 digits)
z - Time zone (General time zone)
yyyy - Year (in 4 digits)
您的时间格式与字符串不匹配。您的格式中缺少了z,它指的是时区。查看此链接以了解更多详细信息字符串返回时带有“BST”,我想我将执行str.replace(“BST”),您不需要替换它。只要改变你的日期格式。这可能是一个替代方案,而不是一个解决方案。正如Luiggi所说。除非你想展示他们将如何使用这个替代方案,否则最好作为一个评论。
EEE - Day name in week (in 3 chars)
MMM - Month in year (in 3 chars)
dd - Day in month (in 2 digits)
kk - Hour in day (1-24) (in 2 digits)
mm - Minute in hour (in 2 digits)
ss - Second in minute (in 2 digits)
z - Time zone (General time zone)
yyyy - Year (in 4 digits)
date = new SimpleDateFormat("E MMM dd HH:mm:ss z yyyy", Locale.ENGLISH)
.parse(string)