使用 SimpleDateFormat,如何解析字符串:“2013-05-23T09:18:07 下午..380+0000”
我所有的 SimpleDateFormat 字符串都在"p.m." part.
提前致谢。
编辑:我们无法控制传入的格式。
我试过了:
"yyyy-MM-dd'T'HH:mm:ss a.a..SSSZ"
"yyyy-MM-dd'T'HH:mm:ss aaaa.SSSZ"
"yyyy-MM-dd'T'HH:mm:ss a.'m'..SSSZ"
"yyyy-MM-dd'T'HH:mm:ss a.'m.'.SSSZ"
"yyyy-MM-dd'T'HH:mm:ss a.'m..'SSSZ"
"yyyy-MM-dd'T'HH:mm:ss aa'm'..SSSZ"
"yyyy-MM-dd'T'HH:mm:ss aa'm.'.SSSZ"
"yyyy-MM-dd'T'HH:mm:ss aaa'..'SSSZ"
"yyyy-MM-dd'T'HH:mm:ss aaa.'.'SSSZ"
"yyyy-MM-dd'T'HH:mm:ss aaa'.'.SSSZ"
目前尚不清楚“380+0000”部分的含义,但您可以通过设置来修复 AM/PM 部分DateFormatSymbols
为了SimpleDateFormat
。这是一个例子:
import java.util.*;
import java.text.*;
public class Test {
public static void main(String[] args) throws Exception {
String text = "2013-05-23T09:18:07 p.m..380+0000";
String pattern = "yyyy-MM-dd'T'hh:mm:ss aa'.380+0000'";
SimpleDateFormat format = new SimpleDateFormat(pattern, Locale.US);
format.setTimeZone(TimeZone.getTimeZone("UTC"));
DateFormatSymbols symbols = format.getDateFormatSymbols();
symbols = (DateFormatSymbols) symbols.clone();
symbols.setAmPmStrings(new String[] { "a.m.", "p.m."});
format.setDateFormatSymbols(symbols);
Date date = format.parse(text);
System.out.println(date);
}
}
我不知道你是否have克隆DateFormatSymbols
在改变它之前 - 说实话,还不清楚......文档 http://docs.oracle.com/javase/7/docs/api/java/text/DateFormatSymbols.html分两种方式:
DateFormatSymbols 对象是可克隆的。当您获取 DateFormatSymbols 对象时,可以随意修改日期时间格式数据。例如,您可以将本地化的日期时间格式模式字符替换为您觉得容易记住的字符。或者您可以将代表城市更改为您喜欢的城市。
鉴于它提到克隆,这表明你should克隆 - 但随后的段落表明不是:(
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)