yyyy-MM-dd‘T‘HH:mm:ssZ的T是什么意思?为什么要用单引号引着

背景

Java里的日期格式,通常我们看到 yyyy-MM-dd'T'HH:mm:ssZ 的写法是什么意思?

尤其这个T作为分隔符为什么左右有单引号,这个单引号会打印出来吗?

这个Z又是什么意思?是时区吗?如果是时区,输出的格式是什么?是类似于这样的字符串:+0800还是+08:00还是+8:00?

解释

yyyy-MM-dd'T'HH:mm:ssZ 的 T 是字符串T的意思,你也可以不用T,只不过大家习惯写成T。

  • 你用字母a分隔也行: yyyy-MM-dd'a'HH:mm:ssZ (输出eg: 2023-09-16a15:59:01+0800)
  • 你多用个字母分隔页行:yyyy-MM-dd'abc'HH:mm:ssZ (输出eg: 2023-09-16abc15:59:01+0800)

最终打印的结果不会出现单引号,这个单引号只是这个日期格式用来表示字符或字符串的形式;

这个日期表达式不用单引号不行,因为不用会被理解为具有特殊含义的字母(类似于y、M、d这些),会运行时抛出异常。

错误示例:yyyy-MM-ddTHH:mm:ssZ

验证的代码

java 复制代码
public static void main(String[] args) {
   String f = "yyyy-MM-dd'T'HH:mm:ssZ";
   SimpleDateFormat sdf = new SimpleDateFormat(f);

   String format = sdf.format(new Date());
   System.out.println(format);
}
相关推荐
大胖丫几秒前
vue 学习-vite api.js
开发语言·前端·javascript
遇见很ok2 分钟前
js中 ES6 新特性详解
开发语言·javascript·es6
没有晚不了安10 分钟前
1.13作业
开发语言·python
布谷歌14 分钟前
Oops! 更改field的数据类型,影响到rabbitmq消费了...(有关于Java序列化)
java·开发语言·分布式·rabbitmq·java-rabbitmq
PXM的算法星球16 分钟前
java(spring boot)实现向deepseek/GPT等模型的api发送请求/多轮对话(附源码)
java·gpt·microsoft
被程序耽误的胡先生20 分钟前
java中 kafka简单应用
java·开发语言·kafka
刀客12320 分钟前
python小项目编程-中级(1、图像处理)
开发语言·图像处理·python
卷卷的小趴菜学编程25 分钟前
c++之多态
c语言·开发语言·c++·面试·visual studio code
F202269748632 分钟前
Spring MVC 对象转换器:初级开发者入门指南
java·spring·mvc
冷琴19961 小时前
基于Python+Vue开发的反诈视频宣传管理系统源代码
开发语言·vue.js·python