2

入力文字列から Date オブジェクトを作成しようとしています。私が書いたコードスニペットは次のとおりです。

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 に答える