2012-06-28 5 views
14

java.util.Dateのインスタンスで呼び出されたtoString()の結果を含むStringがあります。この値をDateオブジェクトに解析するにはどうすればよいですか?toString()から戻ってJavaの日付を返す

dow mon dd hh:mm:ss zzz yyyy 

もちろん"dow"又は"mon"としてそのような形式のタグが存在しない:

のJavaドキュメントは、toString()、フォームのStringこのDateオブジェクトを変換することを言います。

誰かがこの問題を手伝ってくれますか?残念ながら、toString()コールは私のコントロール外のコードに含まれています。

+2

可能複製、以下のリンクを参照することができます[新しい日付(の出力を解析する方法)。のtoString()](HTTP ://stackoverflow.com/questions/4713825/how-to-parse-output-of-new-date-tostring) –

答えて

27

date.toString()の代わりにSimpleDateFormatを使用する必要があります。この方法で、使用するフォーマットを制御できます。

Date date = new Date(); 

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //Or whatever format fits best your needs. 
String dateStr = sdf.format(date); 

次に、あなたはあなたが英語へのSimpleDateFormatロケールを設定し、フォーマットを使用する必要があるのtoString()形式を使用するには...背中の日付に

Date date2 = sdf.parse(dateStr); 

をそれを解析することができ、文字列を持っています:"EEE MMM dd HH:mm:ss Z yyyy"

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", new Locale("us"));` 
+0

Mm ..私はtoString()を制御できません。 Struts。とにかく、ENロケールを設定することはそのトリックですので、ありがとうございます。正しい書式文字列が "EEE MMM dd HH:mm:ss zzz yyyy"であることに注意してください。あなたは月を忘れていました。 – prepetti

+0

私は答えを編集しました。 :) –

-1

あなたは "dateString"の文字列を取得する必要があります。

SimpleDateFormat sdf = new SimpleDateFormat("dow mon dd hh:mm:ss zzz yyyy"); 

Date date = sdf.parse("dateString"); 
+0

これは動作せず、例外がスローされます。正しいコンストラクタ呼び出しは次のとおりです: 'SimpleDateFormat sdf = new SimpleDateFormat(" EEE MMM dd HH:mm:ss Z yyyy "、新しいロケール(" us "));' – sizzle

0

まず、Java Date Formatsが提供するすべての日付形式を見てください。 そして、SimpleDateFormatクラスを使用して、あなたが望むことをすることができます。

public class DateFormatTest 
    { 
     public DateFormatTest() 
     { 
     String dateString = // in "dow mon dd hh:mm:ss zzz yyyy" format 

     SimpleDateFormat dateFormat = new SimpleDateFormat("dow mon dd hh:mm:ss zzz yyyy"); 
     Date convertedDate = dateFormat.parse(dateString); 

     System.out.println("Converted string to date : " + convertedDate); 
     } 

     public static void main(String[] argv) 
     { 
     new DateFormatTest(); 
     } 
    } 
    } 
2

私がテストしていないが、このようなものは、おそらく動作します:

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM HH:mm:ss z yyyy"); 
Date date = sdf.parse(dateStr); 

ない場合は、ドキュメント使用して、それを修正しよう:あなたが参照することができます http://docs.oracle.com/javase/6/docs/api/java/util/Date.html#toString() http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

関連する問題