首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用JAVA解析RFC 2822日期

问用JAVA解析RFC 2822日期
EN

Stack Overflow用户
提问于 2010-03-16 22:08:40
回答 5查看 15.6K关注 0票数 21

我需要用Java解析日期的RFC 2822字符串表示。这里有一个示例字符串:

2010年3月13日,星期六11:29-0800

这看起来很糟糕,所以我想确定我做的一切都是正确的,以后会遇到一些奇怪的问题,不管是通过AM-PM/军事时间问题,UTC时间问题,还是我没有预料到的问题,等等。

谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-03-16 22:19:22

这是一段快速的代码,可以满足您的要求(使用SimpleDateFormat)。

代码语言:javascript
复制
String rfcDate = "Sat, 13 Mar 2010 11:29:05 -0800";
String pattern = "EEE, dd MMM yyyy HH:mm:ss Z";
SimpleDateFormat format = new SimpleDateFormat(pattern);
Date javaDate = format.parse(rfcDate);

//Done.

PS。这里我没有处理异常和并发(因为SimpleDateFormat在解析日期时不同步)。

票数 27
EN

Stack Overflow用户

发布于 2011-04-06 14:03:48

如果应用程序使用的是英语以外的另一种语言,则可能希望使用备用SimpleDateFormat构造函数强制区域设置日期解析/格式化:

代码语言:javascript
复制
String pattern = "EEE, dd MMM yyyy HH:mm:ss Z";
SimpleDateFormat format = new SimpleDateFormat(pattern, Locale.ENGLISH);
票数 20
EN

Stack Overflow用户

发布于 2013-07-01 12:40:34

请记住,",“在RFC-2822中是可选的,因此建议的示例并不涵盖所有RFC-2822日期格式。另外,RFC-822日期类型允许许多不同的时区符号(obs- zone ),这些符号不在"Z“格式说明符的范围之内。

我想,除了寻找“、”和"-|+“来决定使用哪种模式之外,没有什么容易的出路。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2458524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档