如何在Linux Bash命令中输出'2022-12-08T15:25:30.165965Z'格式的时间?
生成目标UTC日期格式的Bash命令
你需要调整date命令的格式字符串,并指定UTC时间,来匹配YYYY-MM-DDTHH:MM:SS.ffffffZ的格式:
GNU Date(Linux系统默认)
使用以下命令:
date -u '+%Y-%m-%dT%H:%M:%S.%6NZ'
参数说明:
-u:强制输出UTC时间(对应格式末尾的Z,代表UTC时区)%Y-%m-%d:按年-月-日顺序输出日期,修正你原命令中日/月/年顺序颠倒的问题T:直接插入格式要求的分隔符T,格式字符串中的普通字符会原样输出%H:%M:%S:输出24小时制的时:分:秒%6N:输出6位微秒(对应目标格式中的.165965部分),%N表示纳秒,取前6位即为微秒Z:直接插入格式要求的Z字符
示例输出:
2024-05-20T14:22:35.789012Z
BSD Date(macOS/BSD系统)
如果是在macOS或BSD系统上,date命令的微秒格式符不同,使用%f表示6位微秒:
date -u '+%Y-%m-%dT%H:%M:%S.%fZ'
原命令的问题修正:
- 日期顺序错误:原命令用
%d-%m-%Y是日-月-年,目标是年-月-日,需改为%Y-%m-%d - 分隔符错误:原命令用空格分隔日期时间,目标是
T,直接在格式字符串中写入T即可 - 微秒格式错误:原命令用
%M(代表分钟),需替换为微秒对应的格式符%6N(GNU)或%f(BSD) - 时区未指定:目标格式的
Z代表UTC时间,需加-u参数输出UTC时间,同时在格式末尾添加Z字符
内容的提问来源于stack exchange,提问作者marialadelbario
相关产品推荐
相关产品推荐

