日期和时间模式 结果
"yyyy.MM.dd G 'at' HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy" Wed, Jul 4, '01
"h:mm a" 12:08 PM
"hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight Time
"K:mm a, z" 0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa" 02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z" Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ" 010704120856-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700 这个是api上面写,应该错不了吧
然后看具体小弟的程序String string = "2008-09-29, 9:24AM PDT";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd, h:mma z");
String str = "12:04 am";
try {
Date date = dateFormat.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}我这样根据api来写应该也没错呀,不过运行后
java.text.ParseException: Unparseable date: "2008-09-29, 9:24AM PDT"
at java.text.DateFormat.parse(Unknown Source)
at com.test.Test.main(Test.java:19)郁闷啊,经过测试后,发现标志AM/PM的符号a有问题,即 "12:08 AM" "hh:mm a" 我这样都会报异常,真的太奇怪了,达人来帮帮看看,谢谢了
"yyyy.MM.dd G 'at' HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy" Wed, Jul 4, '01
"h:mm a" 12:08 PM
"hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight Time
"K:mm a, z" 0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa" 02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z" Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ" 010704120856-0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700 这个是api上面写,应该错不了吧
然后看具体小弟的程序String string = "2008-09-29, 9:24AM PDT";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd, h:mma z");
String str = "12:04 am";
try {
Date date = dateFormat.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}我这样根据api来写应该也没错呀,不过运行后
java.text.ParseException: Unparseable date: "2008-09-29, 9:24AM PDT"
at java.text.DateFormat.parse(Unknown Source)
at com.test.Test.main(Test.java:19)郁闷啊,经过测试后,发现标志AM/PM的符号a有问题,即 "12:08 AM" "hh:mm a" 我这样都会报异常,真的太奇怪了,达人来帮帮看看,谢谢了
Date date = dateFormat.parse(string);
这里是解析string这个字符串的
public class Date{
public static void main(String[] args){
String string = "2008-09-29, 9:24AM PDT";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd, h:mma z");
String str = "12:04 am";
try {
Date date = dateFormat.format(str);
} catch (ParseException e) {
e.printStackTrace();
}
Ssytem.out.println(date);
}
}
此问题有两种解决方案。
第一种: String string = "2008-09-29, 9:24上午 PDT";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd, h:mma z");
try {
Date date = dateFormat.parse(string);
System.out.println( date );
} catch (ParseException e) {
e.printStackTrace();
}第二种: String string = "2008-09-29, 9:24AM PDT";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd, h:mma z", Locale.US);
try {
Date date = dateFormat.parse(string);
System.out.println( date );
} catch (ParseException e) {
e.printStackTrace();
}