在工作过程中,一些业务免不了接触到了一些对时间字符串的处理,整理如下:

转换诸如 “ Wed, 17 Oct 2018 20:17:40 CST”,“ Wed, 17 Oct 2018 20:17:40 BST”等字符时间样式

@Test
public void parseString2Date1()throws Exception{//首先这种时间格式应该是美国时间的一种格式,因为这里不写上Locale.US"的话,则会抛ParseException异常SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.US);String cstStr = "Wed, 17 Oct 2018 20:17:40 CST";String bstStr = "Wed, 17 Oct 2018 20:17:40 BST";System.out.println(sdf.parse(cstStr));System.out.println(sdf.parse(bstStr));sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));System.out.println(sdf.parse(cstStr));System.out.println(sdf.parse(bstStr));/*系统时间若为北京时间,则输出结果如下:Wed Oct 17 20:17:40 CST 2018Thu Oct 18 03:17:40 CST 2018Wed Oct 17 20:17:40 CST 2018Thu Oct 18 03:17:40 CST 2018*//*系统时间若为UTC时间,则输出结果如下:Thu Oct 18 02:17:40 UTC 2018Wed Oct 17 19:17:40 UTC 2018Wed Oct 17 12:17:40 UTC 2018Wed Oct 17 19:17:40 UTC 2018*/
}

对上面的结果主要分析如下:

首先,英国的夏令时间(British Summer Time,缩写BST)是从每年3月最后一个星期天开始,至每年10月最后一个星期天结 束。
    而一年中的其他时候,用格林尼治标准时间(GMT)。注意的是夏令时BST与UTC 时间相差1小时,也就是与北京时间相差7 个小时。
    上面的BST字符串时间,无论是否指定时区,对字符串BST时间不奏效,可以认为字符串BST是自带时区的,并且不可改变。

下面主要分析字符CST时间:
    若系统时间为“东8区”即北京时间,则打印结果为: Wed Oct 17 20:17:40 CST 2018
    但如果系统换为UTC时间,则结果为: Thu Oct 18 02:17:40 UTC 2018,这里是02时,而不是我预期的12时
    后来查了一下CST时间除了代表"中国标准时间",还可以表示"美国、澳大利亚、古巴的标准时间。
    第一条打印结果是因为系统时间就在中国时区,系统即认定此处表示的就是CST中国标准时间,所以符合我的预期结果,
    而第二条结果是因为系统时间为UTC时间,系统默认为此处的CST时间是“美国时间”(美国有好多种时间,这里不细说),
    查了一下,CST美国时间比UTC时间慢了6个小时,所以第二处的结果在原来时间上加上6个小时,变成了第2天的02时,这就
    解释的通了,
    那么如何在系统时间为UTC时间时,也将CST表示为中国标准时间呢?
    只需要指定SimpleDateFormat的时区即可,注意,这里指定时区对BST无影响

Java中字符串CST的时间日期转换相关推荐

  1. java 正则表达式 判断 日期_怎么在java中利用正则表达式对时间日期进行判断

    怎么在java中利用正则表达式对时间日期进行判断 发布时间:2020-12-08 16:18:34 来源:亿速云 阅读:105 作者:Leah 这篇文章给大家介绍怎么在java中利用正则表达式对时间日 ...

  2. java基础系列十七(时间日期转换)

    目录 一.概述 二.基础知识 2.1 时区 2.2 格林威治时间 2.3 时间戳 三.Date/Calendar/SimpleDateFormat 3.1 Date 3.2 Calendar 3.3 ...

  3. java hh24miss_时间日期转换工具类,获取当前时间YYYYMMDD24HHMISS、YYYYMMDDHHMISS

    packagecom.ztesoft.iotcmp.util;importcom.ztesoft.zsmart.core.log.ZSmartLogger;importjava.sql.Timesta ...

  4. JAVA中获取当前系统时间

    JAVA中获取当前系统时间 转自:http://www.cnblogs.com/Matrix54/archive/2012/05/01/2478158.html 一. 获取当前系统时间和日期并格式化输 ...

  5. java和mysql之间的时间日期类型传递

    摘自:http://blog.csdn.net/weinianjie1/article/details/6310770 MySQL(版本:5.1.50)的时间日期类型如下: datetime 8byt ...

  6. MySQL中字符串比较大小(日期字符串比较问题)

    MySQL中字符串比较大小(日期字符串比较问题) 数据库中在对于数字与非数字混合的字符串,在进行大小比较的时候,如果两字符串长度相等,那么两字符串就会比较相同位置的字符,比较时若字符是数字,则直接比较 ...

  7. java中各进制之间的转换(十进制转十六进制、十进制转二进制、二进制转十进制、二进制转十六进制)...

    在java编辑中有没有遇到经常需要进行java中各进制之间的转换(十进制转十六进制.十进制转二进制.二进制转十进制.二进制转十六进制)的事情呢?下面我们就来分析一下各自是怎么转换的: [java] / ...

  8. java中字符串的精确匹配_Java最佳实践–字符串性能和精确字符串匹配

    java中字符串的精确匹配 在使用Java编程语言时,我们将继续讨论与建议的实践有关的系列文章,我们将讨论String性能调优. 我们将专注于如何有效地处理字符串创建, 字符串更改和字符串匹配操作. ...

  9. java中日期计算时间差,java中依据,两个日期,计算时间差

    java中根据,两个日期,计算时间差. 分别获取两个时间的毫秒数Date.getTime(),相减,得到的值/1000为秒数,/60*1000为分钟数,/60*60*1000为小时数. /** * 计 ...

最新文章

  1. Spring Security 实战干货:实现自定义退出登录
  2. destoon php,DESTOON_7.0_UTF8
  3. android 数据存储怎么保存图片_文章要保存为TXT文件,其中的图片要怎么办?Python帮你解决...
  4. boost::uuid模块实现不同形式随机生成器的基准的测试程序
  5. mysql 编码和汉字存储占用字节问题的探索
  6. 2018全球大学AI排名发布,中国高校表现强势!
  7. 汇编程序中,字符数据和ASCII的对应关系
  8. 8.23玩转linux第三天之history、alias、unalias 、mkdir、rmdir、tree命令(一)
  9. spring cloud微服务分布式云架构 - Spring Cloud集成项目简介( java ssm spring boot b2b2c o2o 多租户电子...
  10. 中艺人脸识别考勤机使用方法_人脸识别考勤机说明书及使用方法
  11. matlab车牌匹配时读取,基于matlab+模板匹配的车牌识别(程序+照片+论文)
  12. 大麦网抢票程序(一)之大麦网网站分析
  13. MySQL通过frm和idb恢复数据库的方法
  14. 获取各大电商平台,item_get_app - 获得淘宝app商品详情原数据API返回数据说明
  15. WordPress主题_大前端DUX主题7.1原版+优化-91apps.cn就要应用网
  16. konga 连接postgresql 12+启动异常:error: column r.consrc does not exist
  17. 月薪超1.6万美元!对冲基金实习生也内卷
  18. Acm程序设计学习第二周
  19. 【Codeforces】A2组刷题记录(50 / 50)完结
  20. 4.Docker 镜像加速器

热门文章

  1. CMM与CMMI的关系是什么?
  2. 回话风格重阳节主题班会PPT模板
  3. sql解析json数组
  4. NBA历史上那个位置的球员能够拿下最多的MVP呢?
  5. hisi3559av100 烧录镜像
  6. nRF5340(入门篇)之1.4 浅谈双核系统
  7. 31、消防水泵出水口压力表的压力值
  8. 销售员哪些说话方式受欢迎?
  9. lg手机历史机型_LG各手机型号工程模式简介
  10. 联盛德 HLK-W806 (十一): 软件SPI和硬件SPI驱动ST7567液晶LCD