我想要以下格式的时间
2020-10-12 10:41:42,526
如何做呢。我尝试过,但看起来不正确
date +"%Y-%m-%d %H:%M:%S,%N"
答案1
如果唯一的问题是%N
显示 9 位而不是 3 位,您可以通过在其前面加上要显示的位数来修复它%3N
$ date +"%Y-%m-%d %H:%M:%S,%3N"
2020-10-12 09:52:19,931
答案2
请注意,这%N
是一个 GNUdate
扩展,它给出N
当前时间的亚秒部分(0 填充到 9 位数字)。要获取毫秒,您可以这样做:
date '+%F %T,%3N'
如果这是您正在编写的 zsh 脚本,您可以使用其strftime
内置脚本来移植它:
zmodload zsh/datetime
strftime '%F %T,%3.'
短缺:
zmodload zsh/datetime
strftime '%F %T,%3.' $epochtime
或者让基数字符为用户的基数字符(假设不是,%
但我不知道基数字符所在的任何区域设置%
):
zmodload zsh/datetime
zmodload zsh/langinfo
strftime "%F %T${langinfo[RADIXCHAR]}%3."
如果那是 ksh93 脚本,您可以使用其printf
内置脚本来执行此操作:
printf '%(%F %T,%3N)T\n'
短缺:
printf '%(%F %T,%3N)T\n' now
或者使用用户的基数字符(再次假设它不是%
):
radixchar=$((1e-1))
radixchar=${radixchar//[0123456789]}
printf "%(%F %T${radixchar}%3N)T\n"