GMT和CST的转换

GMT时间是格林尼治标准时间,CST时间是指包括中国,美国,巴西,澳大利亚四个时区的时间。

在javascript中默认CST是指美国中部时间,倘若在javascript中GMT转换CST则两者相差14个小时。在java后台中默认的是北京时间,GMT转换成CST则相差8个小时。各个地方用CST时间得到的可能会有所不同,所以为了避免编程错误,一般使用GMT时间。以下是从其他地方找到的三种转换方式。

  1. 第一种方式:

    Date date = new Date();
    date.toGMTString();

    因此方法在高版本的JDK中已经失效,不推荐使用。

  2. 第二种方式
    DateFormat cstFormat = new SimpleDateFormat();
    DateFormat gmtFormat = new SimpleDateFormat();
    TimeZone gmtTime = TimeZone.getTimeZone("GMT");
    TimeZone cstTime = TimeZone.getTimeZone("CST");
    cstFormat.setTimeZone(gmtTime);
    gmtFormat.setTimeZone(cstTime);
    System.out.println("GMT Time: " + cstFormat.format(date));
    System.out.println("CST Time: " + gmtFormat.format(date)); 

    得到的格式很单调,只有年月日+上下午+时分。感觉不太好用,不推荐使用

  3. 第三种方式
    public Date getCST(String strGMT) throws ParseException {
       DateFormat df = new SimpleDateFormat("EEE, d-MMM-yyyy HH:mm:ss z", Locale.ENGLISH);
       return df.parse(strGMT);
    } 
    
    public String getGMT(Date dateCST) {
       DateFormat df = new SimpleDateFormat("EEE, d-MMM-yyyy HH:mm:ss z", Locale.ENGLISH);
       df.setTimeZone(TimeZone.getTimeZone("GMT")); // modify Time Zone.
       return(df.format(dateCST));
    } 

    一般我们的web请求的请求头中的Date格式类似于:Thu,
    02 Jul 2015 05:49:30 GMT ,可以相应的把上面的格式调整为:

    DateFormat df = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss z", Locale.ENGLISH);

    这种方式可以灵活控制时间的格式,信息量较全,推荐使用。

  4. 下面是三种方式测试的结果:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-09-30 13:46:49

GMT和CST的转换的相关文章

atitit.GMT UTC Catitit.GMT UTC CST DST CET 星期 月份 节日 时间的不同本质and起源

atitit.GMT UTC Catitit.GMT UTC CST DST CET 星期 月份 节日 时间的不同本质and起源 1. GMT(Greenwich Mean Time)是格林尼治平时 2 2. UTC是协调世界时(Universal Time Coordinated)英文缩写,gmt tsabdd 2 3. 而CST却同时可以代表如下 4 个不同的时区: 2 4. DST所谓「夏日节约时间」Daylight Saving Time(简称D.S.T.) 2 5. CET欧洲中部时间

JAVA CST时间 转换成Date

Mybatis中处理Oracle时间类型是个比较麻烦的问题,特别是需要用到时间做比较的,可参考以下代码与思路: 格式化CST时间 SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US); CST时间转换成字符串,实体中为date类型的toString()转换即可 String dateStr = "Mon Sep 02 00:00:00 CST 2019&qu

关于GMT UTC CST和Linux时区设置

GMT即格林威治时间:UTC即全球统一时间:GMT和UTC的时间是一样的 北京时间是东八区,即GMT+8或者UTC+8 CST:Central Standard Time (CST) is 6 hours behind Coordinated Universal Time (UTC). This time zone is in use during standard time in: North America, Central America. 见:https://www.timeanddat

时间:UTC; GMT; DST; CST

GMT时间============================================- 格林威治标准时间 (Greenwich Mean Time,简称G.M.T) UTC时间============================================- 世界协调时间 (Coordinated Universal Time)- 又称世界标准时间.世界统一时间, 以格林威治时间GMT为准- UTC和GMT时间是几乎等同的 DST时间====================

理清 UT、UTC、GMT和CST

平时各种时间标准简写绕得不明不白,查一下整理在这里. IAT: International Atomic Time, 原子时.又称国际原子时,是一种通过原子钟得到的时间标准,原子钟是世界上已知最准确的时间测量和频率标准,原子钟在 37 亿年的误差不超过 1 秒. UT: Universal Time, 世界时 Universal Time (UT) is a time standard based on Earth's rotation. There are several versions o

Java日期格式化之将String类型的GMT,GST日期转换成Date类型

请尊重他人的劳动成果,转载请注明出处:Java日期格式化之将String类型的GMT,GST日期转换成Date类型 http://blog.csdn.net/fengyuzhengfan/article/details/40164721 在实际开发过程中经常会需要将Date类型的数据封装成XML或Json格式在网络上进行传输,另外在将Date类型的数据存到Sqlite数据库中后再取出来的时候只能获取String类型的日期了,这是因为SQLite是无类型的.这样不得不面对将String 类型的日期

CST和GMT时间的区别

今天遇到一个奇怪的问题,在服务器端通过 c# 获取当前时间为 Fri Aug 28 09:37:46 CST 2009, 转化为GMT时间为:28 Aug 2009 01:37:46 GMT,也就是说GMT时间加上 8 个小时等于CST表示的时间, 那这个CST不就是北京时间么,因为我们是在东八区的.   一切看起来很正常,不过在客户端用JavaScript解析这个时间就有问题了:      // Fri Aug 28 2009 23:37:46 GMT+0800   new Date('Fri

Android 转换UTC时间:2013-06-13T14:15:44.000的时间格式 为GMT时间

在有些软件中,可能需要展示一些时间信息,而这些信息可能是Server以UTC格式或Unix timestamp 格式推送过来的,终端可能需要将这些转换为本地时间展示. 终端的制式可能是12小时制.也可能是24小时制的 今天就遇到将utc时间格式转换为GMT HH:返回的是24小时制的时间 hh:返回的是12小时制的时间 下面就是转换的类型代码,当然服务器的格式 2013-06-13T14:15:44.000 SimpleDateFormat sdf = new SimpleDateFormat(

转自文翼的博客:将本地时间转换为 GMT 时间

在写 RSS 订阅接口的时候,发现最终输出文章的 RSS 时间(GMT时间),在本地上显示的时间和在服务器上显示的时间不一致. 原因是时区不一致,那么在 JavaScript 中,如何将时间转换为统一的时间呢? 1. 查看本地和服务器的时区 通过 date 命令,可以知道: 本地的时区是:GMT+0800 (CST) 服务器的时区是:GMT+0400 (MSK) 首先,需要明确的一点是,文章上的时间是基于本地时间的,也就是说是 GMT+0800 (CST). 2. 代码调试 便于理解,我们来举个