特定日期字符串格式

时间:2016-04-13 10:31:04

标签: java date

我从网络服务获取日期作为字符串 它们采用以下字符串格式 "2016-04-12 12:18:11.000 EDT"
文档不是很好,但我想这是一些标准的日期格式 你认识这种格式吗?
我怎样才能最轻松地将其解析为Date

3 个答案:

答案 0 :(得分:3)

我认为它是yyyy-MM-dd HH:mm:ss.SSS zzzyyyy-dd-MM HH:mm:ss.SSS zzz

从你的例子2016-04-12,它可以是2016年4月12日或2016年12月4日

考虑yyyy-MM-dd HH:mm:ss.SSS zzz

的简单示例
DateFormat gmtFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS zzz");
    TimeZone gmt = TimeZone.getTimeZone("GMT");
    gmtFormat.setTimeZone(gmt);
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
    Date dd = df.parse("2016-04-12 12:18:11.000 EDT");
    System.out.println( gmtFormat.format(dd));

输出: 2016-04-12 06:48:11.000 GMT

答案 1 :(得分:2)

你可以这样做:

String date = "2016-04-12 12:18:11.000 EDT";
DateFormat parseFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS z", Locale.US);
Date d = parseFormat.parse(date);

如果您的系统使用其他语言,则区域设置非常重要。

答案 2 :(得分:1)

使用此模式:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS z");


y   Year (e.g. 12 or 2012). Use either yy or yyyy.
M   Month in year. Number of M's determine length of format (e.g. MM, MMM or MMMMM)
d   Day in month. Number of d's determine length of format (e.g. d or dd)
H   Hour of day, 0-23 (normally HH)
m   Minute in hour, 0-59 (normally mm)
s   Second in minute, 0-59 (normally ss)
S   Millisecond in second, 0-999 (normally SSS)
z   Time Zone