我正在尝试解析iCal文件并将信息写入我的Android应用程序的数据库。
我正在使用 ical4j-library 来解析数据,作为输出,我得到了一个格式如下的日期: 20140116T121500Z 。
我想将该日期转换为毫秒。我尝试使用Joda,但无法让它工作:
引起:java.lang.IllegalArgumentException
:格式无效:“20140110T091500Z”格式错误为“1500Z”
答案 0 :(得分:4)
Joda-Time使用DateTimeFormat
API:
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyyMMdd'T'HHmmssZ");
System.out.println(formatter.parseDateTime("20140116T121500Z").getMillis());
<强>输出:强>
1389874500000
我可以通过java.text.SimpleDateFormat
解析代表时区的'Z'来解析你的日期(或者完全省略Z):
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'");
System.out.println(dateFormat.parse("20140116T121500Z").getTime());
<强>输出:强>
1389854700000
注意:通过在java.text.SimpleDateFormat
中稀释时区来引入2次差异,这可以通过在下面设置显式GMT时区来克服:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'");
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(dateFormat.parse("20140116T121500Z").getTime());
<强>输出:强>
1389874500000