JAvaにおけるDateのgetTime()関数

1244 ワード

今日フェイスブックのjson時間を処理する時、1つの問題に出会って、まる1午後困って、ご飯を食べ終わってやっと思い出しました.
Facebookから与えられた時間フォーマット「yyy-MM-ddTHH:mm:ss+0000」
中国の日付に解析するには
boss以前のUtilsはミリ秒級に変換して比較していたので、私も変更しにくいので、変換してやったのですが、日付の時間が08:00:00未満の場合、間違えて報告されることに気づきました(どうやって知ったのか聞かないでください.私は1日から、12時間、24時間制と12時間制の変換だと思っていましたが、いろいろ試してみましたが、それから気づきました).
グリニッジの時間だと推測して、それから方法を見に行ったdocは、Dateであることに気づいた.gettime()の質問です.
public long getTime ()
Added in API level 1
Returns this Date as a millisecond value. The value is the number of milliseconds since Jan. 1, 1970, midnight GMT.
Returns
the number of milliseconds since Jan. 1, 1970, midnight GMT.

戻ってきたのはGMTだったのか、それから解決策を探しました.
このようにします.
private static long dateToMillisecond(String date) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss+0000");
        sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
        Date dt = sdf.parse(date);
        System.out.println(dt.getTime());
        return dt.getTime();
    }

直接データを得た場合、デフォルトでgmtのタイムゾーンに設定すると、タイムゾーンの区別がなくなります.(
私が東八区だと思わないで、8*60*60*1000 msを加えて、これは信頼できないことを教えて、もし他の国のものならば、時区は東八ではありませんて、それではまた乱れています).