SimpleDateFormat限制为预定义的日期

时间:2015-04-07 12:28:20

标签: java date-format simpledateformat

我正在做这个代码:

SimpleDateFormat df = new SimpleDateFormat("MMMM dd, yyyy hh:mmaa");
df.setTimeZone(TimeZone.getTimeZone("America/New_York"));
Date parsedDate = df.parse("Dec 19, 2011 2:37pm");

结果:

java.text.ParseException: Unparseable date: "Dec 19, 2011 2:37pm"

据我所知:

Dec 19, 2011 2:37pm

year -> yyyy -> 2011
month -> MMM -> Dec
day in month -> d -> 2
a -> AM/PM -> pm
minute -> mm -> 37
Hour (1-12, AM/PM) -> h -> 3

格式化有什么问题?

2 个答案:

答案 0 :(得分:3)

您必须指定区域设置:

SimpleDateFormat df = new SimpleDateFormat("MMMM dd, yyyy hh:mmaa", Locale.US);

因为月份的名称取决于它。

答案 1 :(得分:2)

MMMM - 整月(" 12月和#34;)

MMM - 短月(" Dec")

h - 12小时格式的短时(2)

hh - 12小时格式的2位数小时(02)

始终在您创建SimpleDateFormat实例时使用区域设置:

SimpleDateFormat df = new SimpleDateFormat("MMM d, yyyy h:mmaa", Locale.US);