データベースの Unix タイムスタンプを日付形式の文字列に変換しようとしたとき。
int _startTS = evtResult.getInt("start"); //outputs 1345867200
Long _sLong = new Long(_startTS); //outputs 1345867200
//I've also tried: Long _sLong = new Long(_startTS*1000); //outputs 1542436352
DateTime _startDate = new DateTime(_sLong); //outputs 1970-01-16T08:51:07.200-05:00
タイムスタンプは次のようになります: Sat, 25 Aug 2012
。なぜ 1970 が常に出力されるのか全く分かりませんが、誰かが私が犯している愚かな間違いに気付いてくれることを願っています。
ベストアンサー1
Unixの時間は秒単位、Javaの時間はミリ秒単位です
1000倍にする必要があります
DateTime _startDate = new DateTime(_sLong * 1000L);
これをチェックしてみてはいかがでしょうか答え外