我需要获取特定格式的日期,但不知道该怎么做。
这是我目前获取日期的方法。
date -r "$timestamp" +'%Y-%m-%dT%H:%M:%S.s'
然而问题是毫秒对于我需要的格式来说有太多数字。我需要将毫秒限制为 3 位数字。
知道我该怎么做这样的事情吗?
当前的解决方法
不准确但有效。之后我计算毫秒,然后只取字符串的前三个字符。显然这没有考虑四舍五入的情况。
date_string_one=`date -r "$timestamp" +'%Y-%m-%dT%H:%M:%S.'`
date_string_milli=`date -r "$timestamp" +'%s'`
date_string="$date_string_one"`printf "%.3s" "$date_string_milli"`
您可以简单地使用%3N
将纳秒截断为 3 位最高有效数字:
$ date +"%Y-%m-%d %H:%M:%S,%3N"
2014-01-08 16:00:12,746
or
$ date +"%F %T,%3N"
2014-01-08 16:00:12,746
使用 »GNU bash,版本 4.2.25(1)-release (i686-pc-linux-gnu)« 进行测试
但请注意,%N 可能无法实现,具体取决于您的目标系统或 bash 版本。
在嵌入式系统上进行测试 »GNU bash,版本 4.2.37(2)-release (arm-buildroot-linux-gnueabi)« 没有%N
:
date +"%F %T,%N"
2014-01-08 16:44:47,%N
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)