java 一般使用SimpleDateFormat 将字符串转成时间,但是 如美国时间 Thu, 11 Apr 2024 01:43:12 GMT 转成date对象,pattern 该如何写
// 设置时区为格林威治时间,默认为中国标准时间
// 如果不修改时区,转换后date对象时间仍为Thu, 11 Apr 2024 01:43:12,但是时区为CST,后续可能会出现时区不一致问题
final TimeZone timeZone = TimeZone.getTimeZone("GMT");
TimeZone.setDefault(timeZone);
String stringDate = "Thu, 11 Apr 2024 01:43:12 GMT";
SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss 'GMT'", Locale.US);
Date date = sdf.parse(stringDate);
System.out.println(date);
仅供参考
String stringDate = "Thu Oct 16 07:13:48 GMT 2014";
SimpleDateFormat sdf = newSimpleDateFormat("EEE MMM ddHH:mm:ss 'GMT' yyyy",Locale.US);
Date date =sdf.parse(stringDate);
sdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
System.out.println(sdf.format(date));