2

我正在尝试从输入字符串创建一个日期对象。我写的代码片段是:

inputs are like : effDate = "03/09/2012" and ExpiryDate = "08/31/2012"

System.out.println("eff Date: " + effDate); 
SimpleDateFormat formatter = new SimpleDateFormat("MM/DD/yyyy");
Date date = formatter.parse(effDate);
System.out.println("Effective Date = " + formatter.format(date));

我得到的输出是:

eff Date: 03/09/2012
Effective Date = 01/09/2012

其他输入也会发生同样的情况。像

exp date: 08/31/2012
Expiry Date = 01/31/2012

有谁知道将月份值从任何(03/08)更改为 01 的原因?信息:我在 Eclipse 中使用 jdk1.6。并通过 JUNIT 4 运行这个示例程序。

4

2 回答 2

10

new SimpleDateFormat("MM/DD/yyyy");应该是new SimpleDateFormat("MM/dd/yyyy");dd而不是DD

  • DD= 一年中的一天
  • dd= 月中的一天
于 2012-03-09T12:06:30.007 回答
9

你想要dd,没有DD。大写 D 是一年中的一天

Letter  Date or Time Component        Presentation         Examples
-------------------------------------------------------------------
G       Era designator                Text                 AD
y       Year                          Year                 1996; 96
Y       Week year                     Year                 2009; 09
M       Month in year                 Month                July; Jul; 07
w       Week in year                  Number               27
W       Week in month                 Number               2
-------------------------------------------------------------------
D       Day in year                   Number               189       
d       Day in month                  Number               10        <-----------
-------------------------------------------------------------------
F       Day of week in month          Number               2
E       Day name in week              Text                 Tuesday; Tue
u       Day number of week            Number               1
        (1 = Monday, ..., 7 = Sunday)
a       Am/pm marker                  Text                 PM
H       Hour in day (0-23)            Number               0
k       Hour in day (1-24)            Number               24
K       Hour in am/pm (0-11)          Number               0
h       Hour in am/pm (1-12)          Number               12
m       Minute in hour                Number               30
s       Second in minute              Number               55
S       Millisecond                   Number               978
z       Time zone                     General time zone    Pacific Standard Time; PST
Z       Time zone                     RFC 822 time zone    -0800
X       Time zone                     ISO 8601 time zone   -08; -0800; -08:00
于 2012-03-09T12:09:26.390 回答