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);
}
相关推荐
Mr_liu_6661 分钟前
ns3-gym例子解析_基础例子与wifi例子_DQN(3)
开发语言·c++·python·dqn·ns3
风哥2号2 分钟前
数据库教程FGMT04‑生产环境Linux+Oracle19c RAC集群安装配置与项目实战
linux·数据库
weixin_440730504 分钟前
playwright实战-渠道应用操作
开发语言·前端·python
砚底藏山河5 分钟前
存储选型实战:CSV-SQLite-MySQL同机基准(魔码量化实战 #02)
java·数据库·python·金融·maven
huaweichenai6 分钟前
spring boot 打包并部署到线上服务
java·数据库·spring boot
土司大王6 分钟前
LeetCode hot100——实现 Trie (前缀树)
java·算法·leetcode
陈年老古董9 分钟前
Python模拟MapReduce分治思想 | 从单文件统计到大文件拆分聚合 学习笔记
开发语言·hadoop·笔记·python·学习
qetfw9 分钟前
Debian Postfix + Dovecot 基础配置:DNS、Maildir、IMAP 与邮件队列验证
linux·服务器·网络·debian
quantdash_cc9 分钟前
数据 API 的稳定性应该如何长期监控?从量化数据监控体系到 QuantDash 实践
开发语言·python·数据分析·量化交易·股票数据·quantdash
lhldsg12 分钟前
从零构建智慧场馆解决方案小程序:开发全流程实战
java·前端·小程序