2016-08-24 11 views
0

私は日付を返すために休憩サービスを作成しました。間違ったjavaとangularjsの間の日付の値

バックエンドではJava、フロントエンドではAngularJSを使用します。

Javaで私のコードは次のようなものです:

SimpleDateFormat myFormat= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    Date myDate = myFormat.parse("1900-01-01 12:00:00"); 
    return myDate; 

そして、私はサービスからこの値を取得するとき、私はこのコードをフロントエンドに表示:

<div> 
    <h4>{{myDate | date:'yyyy-MM-dd HH:mm:ss'}}</h4> 
</div> 

ページショー"1899-12-31 23:56:16"。

私はもう一度試しましたが、現在の日付で正常にシステムに表示されます。

+1

タイムゾーンの表現に問題があります。クライアントとサーバーのタイムゾーンはどれですか? – Makoto

+0

両方のタイムゾーンはGMT:-5ですが、エラーは常に発生しません。時には正しい時刻が表示されます。 – marcosaz95

+0

これはバックエンドですか?今のところHTML/AngularJSの部分をスキップし、Javaコードをトレースします。この質問は、スタックオーバーフローには適切ではなく、十分な情報ではなく、特定のプログラミングに関する質問もありません。 –

答えて

1

私は1900年から2020年までのすべての1月1日の日付でテストしている、そして、実際には、JavaとJavaScriptは明らかに(実際には1912年から1940年一致間のみ日付)を一定の間隔で値異なるミリ秒を返します。

私はJavaで日付文字列を(ジャバスクリプト部分では、使用する基準は、私が推測する、暗黙のうちUTC)で解析する際に、この何とかランダム差は、特定のタイムゾーン不足に起因していることを実験的にテストしてみました。さらに、日付の解析時にTimeZoneを指定することは、常に良い方法です。

だから私はあなたのJavaプログラムでUTC(またはGMT + 0000)のタイムゾーン指定子を追加することをおすすめします:

SimpleDateFormat myFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z"); 
    Date myDate=myFormat.parse("1900-01-01 12:00:00 +0000"); 

私は関係なく、私の推測では、AngularJSスクリプトレットは、UTCから参照している、と主張していませんクライアントが実際にどのタイムゾーンにいるかを示します。

+0

はい、それはうまく動作します、助けてくれてありがとう – marcosaz95

+0

あなたはwlcomeです。 –

関連する問題