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);
}
相关推荐
焦糖玛奇朵婷5 分钟前
解锁扭蛋机小程序的五大优势
java·大数据·服务器·前端·小程序
山栀shanzhi8 分钟前
C/C++之:构造函数为什么不能设置为虚函数?
开发语言·c++·面试
lsx20240610 分钟前
.toggleClass() 方法详解
开发语言
yuan1999716 分钟前
C&CG(列与约束生成)算法,来解决“风光随机性”下的微网鲁棒配置问题
c语言·开发语言·算法
SamDeepThinking17 分钟前
别让一个超时的第三方http接口拖垮所有接口
java·后端·架构
jingyu飞鸟22 分钟前
Linux系统发送邮件,解决信誉等级低问题 docker compose修改启动一键使用
linux·运维·docker
Lumos_77725 分钟前
Linux -- exec 进程替换
linux·运维·chrome
李白的天不白25 分钟前
读到数据为undefind是的几种情况
开发语言·javascript·ecmascript
YaBingSec28 分钟前
玄机靶场:供应链安全-供应链应急-Part2 通关笔记
java·笔记·安全
Gerardisite31 分钟前
企微机器人开发指南
java·python·机器人·自动化·企业微信