2012-05-11 32 views
-2

日付は、Thu- Mar 22 2012です。これは文字列変数date1で取得されます。文字列変数の日付を日付形式に変換する必要があります。以下のコードを試しましたが失敗しました日付を解析する;助けてください。文字列を特定の日付形式に変換する

DateFormat formatter; 
Date formatted_date= null; 


formatter = new SimpleDateFormat("EEE-MM d yyyy"); 
try { 
     formatted_date= (Date) formatter.parse(date1); 
} catch (ParseException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
+1

' - 'の後に書式文字列にスペースがありません。 – Kai

+0

あなたの「あなた」とあなたの書式の間にはスペースがあります。 "EEE-MM" typo? – Roger

+0

私は試みました、フォーマッタ=新しいSimpleDateFormat( "EEE- MM d yyyy");しかし、同じエラーが発生しました。 – Anuradha

答えて

0
Thu- Mar 22 2012 
EEE- MMM dd yyyy 

SimpleDateFormat toStringFormatter = new SimpleDateFormat("EEE MMM dd yyyy"); 
String formattedDate = toStringFormatter.format(date); 

のでparse()Stringのためである - >Date、そしてformat()Dateのためである - >String

+0

フォーマッタ=新しいSimpleDateFormat( "EEE-MMM d yyyy");それは働いた。 – Anuradha

+0

もう1つの疑問は私が今持っている...解析された日付は "Thu Mar 22 00:00:00 GMT + 05:30 2012"の形式です。しかし、どうすればThu Mar 22 2012自体を変数として得ることができますタイプの日付? – Anuradha

+0

'formatted_date.toString()'だけを使用する場合は、この「Thu Mar 22 00:00:00 GMT + 05:30 2012」フォームに日付が表示されます。ただし、日付フォーマッタを使用して、希望の形式で日付を出力することができます。私は答えを更新します。 –

1

次の形式に変更し、それを

EEE- MMM d yyyy 

注スペース-MMM

2

後にあなたが 'マル' のような数ヶ月の省略形を解析するために、3つのMsの 'MMM' を必要とします。そして、 'EEE-'の後の空白をチェックしてください。日付の書式のため:私はあなたがこの

UPDのようなものが必要だと思う

+0

@ stacker:ありがとう..それは働いた... 'MMM'を必要とする – Anuradha

0

すでに投稿されている回答がうまくいかない場合は、ロケールの問題次SimpleDateFormatを試してみてください。

formatter = new SimpleDateFormat("EEE- MMM d yyyy", Locale.ENGLISH); 
0

私は与えられたモードで感謝とロケールのデフォルト日付フォーマット記号コンストラクタてSimpleDateFormatを与えられました。注意:このコンストラクタは、すべてのロケールをサポートしているわけではありません。すべての言語環境をカバーするには

public SimpleDateFormat(String pattern,Locale locale) 
    //local:Locale.ENGLISH 
    //default is not English 
    formatter = new SimpleDateFormat("EEE, MMM d, ''yy", Locale.ENGLISH); 
    try { 
     formatted_date= (Date) formatter.parse("Wed, Jul 4, '01"); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
}