我想将字符串Thu Apr 03 07:53:53 BST 2014
解析为java中的Date对象。我不知道如何处理BST'部分 - 我试过这个
date = new SimpleDateFormat("E MMM dd HH:mm:ss yyyy", Locale.ENGLISH).parse(string);
但获得无法解释的日期:" Thu Apr 03 07:53:53 BST 2014"
答案 0 :(得分:1)
您错过了BST
部分。使用zzz
:
date = new SimpleDateFormat("E MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH).parse(string);
答案 1 :(得分:1)
这是因为日期与格式字符串不匹配。日期有一个时区,但格式字符串没有。
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);
答案 2 :(得分:0)
您可以使用Joda Time库。
答案 3 :(得分:0)
使用SimpleDateFormat尝试使用您的语言环境。
// Thu Apr 03 07:53:53 BST 2014
SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd kk:mm:ss z yyyy", Locale.ENGLISH);
Date date = format.parse("Thu Apr 03 07:53:53 BST 2014");
每种模式的描述
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)
答案 4 :(得分:0)
date = new SimpleDateFormat("E MMM dd HH:mm:ss z yyyy", Locale.ENGLISH)
.parse(string)
您的时间格式与字符串不匹配。您错过了格式中的z,它指的是时区。有关详细信息SimpleDateFormat
,请查看此链接