【Java-时间格式解析】Java解析形如 yyyy-MM-ddTHH:mm:ssZ 的时间格式
日期时间字符串格式
ECMAScript 基于 ISO8601
扩展格式的简化定义了日期时间的字符串交换格式。格式如下:YYYY-MM-DDTHH:MM:ss.sssZ
其中字段如下:
格式 | 含义 |
---|---|
YYYY | 是公历中0000到9999年的十进制数字。 |
- | “-”(连字符)在字符串中实际出现两次。 |
MM | 是一年中从01(1月)到12(12月)的月份。 |
DD | 是一个月中从01到31的日期。 |
T | “T”出现在字符串中,表示时间元素的开始。 |
HH | 是自午夜以来经过的完整小时数,以00到24的两位小数表示。 |
: | “:”(冒号)在字符串中实际出现两次。 |
mm | 是自小时开始以来的完整分钟数,从00到59的两位小数。 |
ss | 是自分钟开始以来的完整秒数,从00到59的两位小数。 |
. | “.”(点)按字面意思出现在字符串中。 |
sss | 是自第二个开始以来的完整毫秒数,以三位十进制数字表示。 |
Z | 是指定为“Z”(UTC)或“+”或“-”的时区偏移量,后跟时间表达式HH:mm |
Z(zero)是表示0时区,对我们国家来说,采用北京时间,处于东八区 UTC+8。所以带Z的时间格式,转换成北京时间需要加上 8 个小时。
例如:
# 原时间Updated Date:2017-12-04T18:07:57ZCreation Date:2017-12-04T18:07:44ZRegistry Expiry Date:2018-12-04T18:07:44Z # 换算成北京时间:Updated Date:2017-12-05 02:07:57Creation Date:2017-12-05 02:07:44Registry Expiry Date:2018-12-05 02:07:44
通过java代码解析时间的时候需要考虑时区,解析代码如下:
String STANDARD_DATE_FORMAT_UTC = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";Calendar date = Calendar.getInstance();SimpleDateFormat sdf = new SimpleDateFormat(STANDARD_DATE_FORMAT_UTC);sdf.setTimeZone(TimeZone.getTimeZone("GMT"));Date dateTime =sdf.parse(createdDateTime);date.setTime(dateTime);
来源地址:https://blog.csdn.net/weixin_53543905/article/details/130246796