2017-05-10 9 views
-2

日付の書式設定に問題があります。Javaフォーマットの日付

YYYY-MM-DDTHH:mm:ssの+ 02:+02:00は、私の場合には、あなたがいる時間帯に依存して00

ヨーロッパ/アムステルダム

私は、次のような出力をしたいです

私はこの機能があります。

public String marshal(Date d) throws Exception 
{ 
    DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"); 
    String s = formatter.format(d); 

    return s; 
} 

をしかし、それは私を与える:

2017-05-10T14:56:46 +

0200は、どのように私は間に余分なコロンとタイムゾーンの時間/分を持つことができますか?

+1

を使用しています。詳細は、http://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.htmlを参照してください。 – bradimus

+1

この形式は、ISO 8601標準で定義されています。 "ISO 8601"のスタックオーバーフローを検索して、多くの既存の投稿を表示します。そして、投稿する前に、常に徹底的に検索する必要があります。もう1つのことは、使用している古いレガシー日時クラスを避けます。 java.timeクラスに置き換えられました。 –

+0

これはすでに質問され、回答済みです:[http://stackoverflow.com/a/16289344/7750124](http://stackoverflow.com/a/16289344/7750124) f1shはあなたの問題をより良く理解するのに役立つと説明しました。上記のリンクの解決策は、同じ回答を指しているようです。 – Koshux

答えて

2

それはthe documentationに権利があります:

次のようにパターン文字の数がフォーマットと解析の両方の形式を指定し、[...]

及び実施例から:

「yyyy-MM-dd'T'HH:mm:ss.SSSXXX」2001-07-04T12:08:56.235-07:00

パターンで "XXX"を使用して、コロンで区切られたタイムゾーンのバージョンを表すことができます。

TL; DR: ":MM:ssXXX YYYY-MM-dd'T'HH" を試してみてください

DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX"); 
+0

おかげで、そのトリックをした – baliman

+1

この場合、あなたは正しいものとしてこの答えを受け入れることができます:) – f1sh

関連する問題