字符串到日期解析java



我想用java将字符串Thu Apr 03 07:53:53 BST 2014解析为Date对象。我不知道如何处理"BST"部分——我试过这个

date = new SimpleDateFormat("E MMM dd HH:mm:ss yyyy", Locale.ENGLISH).parse(string);

但获得无法解析的日期:"2014年4月3日星期四英国夏令时07:53:53">

您缺少BST部分。使用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);

您可以使用Joda Time库。

使用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)
date = new SimpleDateFormat("E MMM dd HH:mm:ss z yyyy", Locale.ENGLISH)
       .parse(string)

您的时间格式与字符串不匹配。您错过了格式中的z,它指的是时区。查看此链接了解更多详细信息SimpleDateFormat

相关内容

  • 没有找到相关文章

最新更新