1

日付と時刻のピッカーがあり、これら 2 つを使用して文字列の日付を作成します。日付と時刻の文字列の例を次に示します。

"11/6/2013 09:23"

次に、それらを日付に変換し、「yyyy-MM-dd'T'HH:mm:ss.SSS」という形式に変換する必要があります。

私の問題は、logcat で次のエラーが発生していることです。

11-06 21:23:53.060: E/Error(26255): Unparseable date: "11/6/2013 09:23" (at offset 2)

このコードを使用して、文字列を日付に変換し、日付をフォーマットされた文字列に変換しています。

Date d = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS", Locale.getDefault()).parse(etaToDeliverArrivedAtShipper.getText().toString());
ETAtoNextStop = d.toString();

新しい日付を使用して現在の日付を取得すると、正常に機能します。文字列の形式が間違っていると思います。しかし、私はその形式で編集テキストに表示しています。そのままでいて欲しい。この文字列形式を日付に変換する方法はありますか? アイデアはありますか?ありがとう!

4

3 に答える 3

0

あなたは一度に2つのことをしようとしていると思います。任意の文字列を異なる形式の別の文字列に変換するには、次のことを行う必要があります。

現在の形式を含む DateFormat を使用して文字列を解析すると、Date が返されます。次に、新しく取得した日付を取得し、目的の DateFormat でフォーマットします

SimpleDateFormat formatOne = new SimpleDateFormat("dd/MM/yyyy HH:mm");
Date date = formatOne.parse(etaToDeliverArrivedAtShipper.getText().toString());
SimpleDateFormat formatTwo = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS",Locale.getDefault());
String result = formatTwo.format(date)
于 2013-11-06T13:43:11.693 に答える
0

解析しようとしていますがyyyy-MM-dd'T'HH:mm:ss.SSS、そうではありません。それはおそらくyyyy/M/dd HH:mm:ss

おそらくあなたが望むのは:

Date d = new SimpleDateFormat("yyyy/M/dd HH:mm:ss", Locale.getDefault()).parse(etaToDeliverArrivedAtShipper.getText().toString());
ETAtoNextStop = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS", Locale.getDefault()).format(d);
于 2013-11-06T13:44:05.807 に答える