通知サーバーから日付文字列を次の形式で受け取った。 2017-09-04T07:09:30.269 + 00:00Android文字列の日付「2017-09-04T07:09:30.269 + 00:00」に変換する
データベースに保存するには、長い形式に変換します。
public static long convertStringDatetoLong(final String date, final String inputFormat) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(inputFormat);
try {
Date outputDate = simpleDateFormat.parse(date);
return outputDate.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
return 0;
}
は、私はconvertStringDatetoLong(date, "yyyy-mm-dd'T'HH:mm:ss.SSSXXX");
を呼び出すしかし、私は変換が長い何とか間違っていることがわかりました。
結果の時間は1483513770269で間違っています。 それは
2017-09-04T07(私はにcurrentTimeMillisとなっている)... 15で始めるとする時には1504509270911のようにする必要があります:09:30.269 + 00:00、入力された時間帯が同じではありません私のタイムゾーンはGMT + 08:00
私はデバイスのタイムゾーンに変換し、保存するための正確なミリ秒を取得する方法がわかりません。
更新日:
申し訳ありませんが、私は愚かなことをやっているということ。 MMでないmmでなければなりません。あなたは簡単にこのようなオブジェクトZonedDateTime
でこれを行うことができます
この必須API 26.下位レベルのAPI> 16をサポートする必要があります。 –
ああ、書きませんでした私はどこにいても高いAPIレベルを使用することを期待していました。 – Nico