Java中字符串CST的时间日期转换
在工作过程中,一些业务免不了接触到了一些对时间字符串的处理,整理如下:
转换诸如 “ 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的时间日期转换相关推荐
- java 正则表达式 判断 日期_怎么在java中利用正则表达式对时间日期进行判断
怎么在java中利用正则表达式对时间日期进行判断 发布时间:2020-12-08 16:18:34 来源:亿速云 阅读:105 作者:Leah 这篇文章给大家介绍怎么在java中利用正则表达式对时间日 ...
- java基础系列十七(时间日期转换)
目录 一.概述 二.基础知识 2.1 时区 2.2 格林威治时间 2.3 时间戳 三.Date/Calendar/SimpleDateFormat 3.1 Date 3.2 Calendar 3.3 ...
- java hh24miss_时间日期转换工具类,获取当前时间YYYYMMDD24HHMISS、YYYYMMDDHHMISS
packagecom.ztesoft.iotcmp.util;importcom.ztesoft.zsmart.core.log.ZSmartLogger;importjava.sql.Timesta ...
- JAVA中获取当前系统时间
JAVA中获取当前系统时间 转自:http://www.cnblogs.com/Matrix54/archive/2012/05/01/2478158.html 一. 获取当前系统时间和日期并格式化输 ...
- java和mysql之间的时间日期类型传递
摘自:http://blog.csdn.net/weinianjie1/article/details/6310770 MySQL(版本:5.1.50)的时间日期类型如下: datetime 8byt ...
- MySQL中字符串比较大小(日期字符串比较问题)
MySQL中字符串比较大小(日期字符串比较问题) 数据库中在对于数字与非数字混合的字符串,在进行大小比较的时候,如果两字符串长度相等,那么两字符串就会比较相同位置的字符,比较时若字符是数字,则直接比较 ...
- java中各进制之间的转换(十进制转十六进制、十进制转二进制、二进制转十进制、二进制转十六进制)...
在java编辑中有没有遇到经常需要进行java中各进制之间的转换(十进制转十六进制.十进制转二进制.二进制转十进制.二进制转十六进制)的事情呢?下面我们就来分析一下各自是怎么转换的: [java] / ...
- java中字符串的精确匹配_Java最佳实践–字符串性能和精确字符串匹配
java中字符串的精确匹配 在使用Java编程语言时,我们将继续讨论与建议的实践有关的系列文章,我们将讨论String性能调优. 我们将专注于如何有效地处理字符串创建, 字符串更改和字符串匹配操作. ...
- java中日期计算时间差,java中依据,两个日期,计算时间差
java中根据,两个日期,计算时间差. 分别获取两个时间的毫秒数Date.getTime(),相减,得到的值/1000为秒数,/60*1000为分钟数,/60*60*1000为小时数. /** * 计 ...
最新文章
- Spring Security 实战干货:实现自定义退出登录
- destoon php,DESTOON_7.0_UTF8
- android 数据存储怎么保存图片_文章要保存为TXT文件,其中的图片要怎么办?Python帮你解决...
- boost::uuid模块实现不同形式随机生成器的基准的测试程序
- mysql 编码和汉字存储占用字节问题的探索
- 2018全球大学AI排名发布,中国高校表现强势!
- 汇编程序中,字符数据和ASCII的对应关系
- 8.23玩转linux第三天之history、alias、unalias 、mkdir、rmdir、tree命令(一)
- spring cloud微服务分布式云架构 - Spring Cloud集成项目简介( java ssm spring boot b2b2c o2o 多租户电子...
- 中艺人脸识别考勤机使用方法_人脸识别考勤机说明书及使用方法
- matlab车牌匹配时读取,基于matlab+模板匹配的车牌识别(程序+照片+论文)
- 大麦网抢票程序(一)之大麦网网站分析
- MySQL通过frm和idb恢复数据库的方法
- 获取各大电商平台,item_get_app - 获得淘宝app商品详情原数据API返回数据说明
- WordPress主题_大前端DUX主题7.1原版+优化-91apps.cn就要应用网
- konga 连接postgresql 12+启动异常:error: column r.consrc does not exist
- 月薪超1.6万美元!对冲基金实习生也内卷
- Acm程序设计学习第二周
- 【Codeforces】A2组刷题记录(50 / 50)完结
- 4.Docker 镜像加速器