形式の時刻文字列を標準時間に変換するにはEEE, dd MMM yyyy HH:mm:ss Z
、次の手順に従います。
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class Main {
public static void main(String[] args) {
String inputDate = "Thu, 17 Aug 2023 09:44:30 +0800";
String inputFormat = "EEE, dd MMM yyyy HH:mm:ss Z";
String outputFormat = "yyyy-MM-dd HH:mm:ss";
try {
SimpleDateFormat inputFormatter = new SimpleDateFormat(inputFormat, Locale.ENGLISH);
Date date = inputFormatter.parse(inputDate);
SimpleDateFormat outputFormatter = new SimpleDateFormat(outputFormat);
String outputDate = outputFormatter.format(date);
System.out.println(outputDate);
} catch (Exception e) {
e.printStackTrace();
}
}
}
SimpleDateFormat
上記のコードでは、クラスの 2 つのインスタンスを使用しています。1
つは入力日付文字列の解析に、
もう 1 つは日付を出力形式にフォーマットするために使用されます。
変換中に一貫した時間を維持するには、 を使用してoutputFormatter.setTimeZone(TimeZone.getTimeZone("GMT"))
出力時間を に設定しますGMT或UTC时区
。
上記のコードを実行すると、出力は次のようになります。2023-08-17 02:52:02
出力時刻は GMT または UTC タイム ゾーンに調整されるため、元の入力時刻とは異なるタイム ゾーンになる場合があることに注意してください。
またはhutoolを使用してください
String inputDate = "Thu, 17 Aug 2023 09:44:30 +0800";
String inputFormat = "EEE, dd MMM yyyy HH:mm:ss Z";
DateUtil.parse(inputDate,inputFormat,Locale.ENGLISH)