1

この format で今日の Date を取得する必要があります{"Date":"2013-09-11T14:47:57.8895887+02:00"}。これは、私の Json Service が Windows Phone と C# コード用に研究されているためです。

私はこの方法で試しました:

public static Date getTodayDate() {
    SimpleDateFormat dateFormat = new SimpleDateFormat(
            "yyyy-MM-dd'T'HH:mm:ss.SSSZ:Z");
    Date date = new Date();
    String dateString = dateFormat.format(date);
    Date today = parseFromNormalStringToDate(dateString);
    return today;
}

しかし、私はこのリターンを得る

2013-09-16T11:47:55.235+0200:+0200;

助けてくれてありがとう!

4

2 に答える 2

1

ここで変更する点が 2 つあります。まずはフォーマット。

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSXXX"); // This should work for you. Though I must say 6 "S" is not done. You won't get milliseconds for 6 precisions.
Date date = new Date();
String dateString = dateFormat.format(date); // You need to use "dateString" for your JSON

次に、フォーマットされた日付は、JSON に入力する必要があり、解析して に戻す必要はありませんDate。ただしDate、書式設定オプションはありません。SDF を使用して、必要な形式で日付の文字列表現のみを取得できます。

元:-

public static void main(String[] args) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSXXX");
    Date date = new Date();
    String dateString = dateFormat.format(date); // You need to use "dateString" for your JSON
    System.out.println(dateString); // Output
}

この出力は次のとおりです。

2013-09-16T15:39:16.000257+05:30

ミリ秒単位の 6 桁の精度は使用できません。Java 7 で SDF のドキュメントが表示されている場合は、次の内容を見つけることができます。

ここに画像の説明を入力

強調表示された例は必要なものですが、6 ミリ秒の精度では不可能です。したがって、6 Sを使用できますが、実際の 3 ミリ秒桁の前に 3 つの先行ゼロが追加されるだけです! これは、あなたの場合に可能な唯一の回避策です!

編集:-

AndroidのSimpleDateFormatには が含まれていませんX。代わりに提供しZます。したがって、新しいフォーマット文字列は

yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZZZZ

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZZZZ"); // For Android
于 2013-09-16T10:05:44.983 に答える
0

問題は "Z:Z" にあります 代わりに "X" を試してください:

public static Date getTodayDate() {
    SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSSX");
    Date date = new Date();
    String dateString = dateFormat.format(date);
    Date today = parseFromNormalStringToDate(dateString);
    return today;
}
于 2013-09-16T09:59:00.623 に答える