【发布时间】:2014-08-20 20:08:56
【问题描述】:
我知道对于“23-07-2014”这种格式的日期,我可以将格式化程序用作“dd-MM-yyyy”。
我可以使用什么作为这个日期的格式化程序“2014-07-05T00:00:00.000-07:00”?
我正在使用 DateTimeFormatter 并想指定模式来解析上述日期。
谢谢!
【问题讨论】:
我知道对于“23-07-2014”这种格式的日期,我可以将格式化程序用作“dd-MM-yyyy”。
我可以使用什么作为这个日期的格式化程序“2014-07-05T00:00:00.000-07:00”?
我正在使用 DateTimeFormatter 并想指定模式来解析上述日期。
谢谢!
【问题讨论】:
嗯,作为人类,你能读懂它吗?你能确定哪个部分匹配什么吗?如果是这样,查看documentation 并自己解决是微不足道的。
例如,开头看起来像年、月、日(我想可能是年、日、月,但我们假设它是正常的)。文档指出该年份由y 映射,并且您需要4 个数字,因此您的格式以yyyy 开头。同样的道理,一年中的月份是M,月份中的一天是d,所以你的格式以yyyy-MM-dd开头。
T 只是日期和时间之间的分隔符。然后你会得到一些看起来像小时、分钟、秒的东西 - 查看文档,那是 HH:mm:ss。
以下 3 个数字看起来像毫秒:`S'。
最后,一个时区作为偏移量:Z。
把它放在一起:
yyyy-MM-dd'T'HH:mm:ss:.SSSZ
即兴发挥,我没有尝试过也没有仔细检查过,但它应该可以工作。或者至少,它应该向您展示如何去做,只需阅读文档即可。
【讨论】:
您的日期格式错误"dd-mm-yyyy"。它应该是"dd-MM-yyyy"。 MM 用作月份,mm 用作分钟。
可以使用"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"解析2014-07-05T00:00:00.000-07:00
String str = "2014-07-05T00:00:00.000-07:00";
DateFormat df=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
System.out.println(df.parse(str));
输出:
Sat Jul 05 12:30:00 IST 2014
关注this。下次你自己来回答。
【讨论】: