前言

在编程中处理日期格式时,通常会遇到带CST或GMT的时间格式,它们代表什么,如何转换呢?

概念

CST和GMT时间示例如下:

Mon Oct 26 15:19:15 CST 2022

Thu, 22 Sep 2022 09:41:01 GMT

Java处理时间格式CST和GMT转换

CST

这个代号缩写,并不是一个统一标准,目前,可以同时代表如下 4 个不同版本的时区概念(要根据上下文语义加以区分):

1)China Standard Time 中国标准时区 (UTC+8)

2)Cuba Standard Time 古巴标准时区 (UTC-4)

3)Central Standard Time (USA) 美国中央时区 (UTC-6)

4)Central Standard Time (Australia) 澳大利亚中央时区(UTC+9)

GMT

格林尼治时间(另有格林威治时间一说)

转换处理

本地时间为CST格式时间

CST格式字符串转换成yyyy-MM-dd HH:mm:ss格式的时间

代码:

public static void main(String[] args) throws ParseException {
    String dateStr = "Mon Oct 26 22:22:22 CST 2022";
    DateFormat cst = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    DateFormat gmt = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH);
    Date dateTime = gmt.parse(dateStr);
    String dateString = cst.format(dateTime);
    System.out.println(dateString);
}

输出结果:

2022-10-26 22:22:22

CST格式的日期转换为GMT时间

代码:

public static void main(String[] args) throws ParseException {
      Date date = new Date();
      DateFormat gmt = new SimpleDateFormat("EEE, d-MMM-yyyy HH:mm:ss z", Locale.ENGLISH);
      gmt.setTimeZone(TimeZone.getTimeZone("GMT"));
      String dateStr = gmt.format(date);
      System.out.println(dateStr);
  }

输出结果:

Fri, 23-Sep-2022 03:05:42 GMT

GMT字符串转化为本地时间

public static void main(String[] args) throws ParseException {
    DateFormat format = new SimpleDateFormat("EEE, d-MMM-yyyy HH:mm:ss z", Locale.ENGLISH);
    format.setTimeZone(TimeZone.getTimeZone("GMT"));
    Date parse = format.parse("Fri, 23-Sep-2022 03:15:55 GMT");
    System.out.println(parse);
  }

输出结果:

Fri Sep 23 11:15:55 CST 2022

相关阅读:
https://ssxtx.blog.csdn.net/article/details/108369391

Java处理时间格式CST和GMT转换

点赞 收藏 关注

发表回复