私はJodaTimeのDateTimeFormatを使ってREST APIのいくつかの日付を表しています。異なる環境でのJodaTimeの奇妙な動作
私が使用しているフォーマットは
DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss z").withZone(DateTimeZone.forID("EST"));
だから私は例えば、私の日付のように表現することにしたいです:2016年4月14日午前8時50分31秒EST
問題があることですプロダクションでコードを実行すると、上の例のように日付が表示されますが、ローカルマシンやステージングで実行すると、次のようになります。
04/14/2016 09: 05:53 -05:00
私は両方の環境で全く同じコードを使用しています。また、ステージングとプロダクションの両方がAmazonで実行されており、サーバーの日付も同じように設定されているため、この問題の解決方法はわかりません。
私は私の問題を説明し、再現するために、単純な主に作られています
public static void main(String[] args) {
DateTimeFormatter format = DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss z")
.withZone(DateTimeZone.forID("UTC"));
System.out.println(new DateTime(new Date()).toString(format));
}
P.S.私はJava 8とJodaTime 2.7を使用しています。
ローカルテストの形式で大文字のZを使用していないことを100%確信していますか?私は与えられた例であなたの出力を複製することはできません。 – dambros
私は100%自信を持っています。私はJodaTime 2.7を使用しています –
あなたにオプションのjodaをアップデートしていますか?私は2.7で試したところ、実際には動作しません。以前は2.9.3で複製できませんでした。 – dambros