加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

date – 如何设置当前的Unix时间(以毫秒为单位)?

发布时间:2020-12-15 18:31:35 所属栏目:安全 来源:网络整理
导读:可能解决方案 date --set="2011-12-07 01:20:15.962" date --rfc-3339=ns 原始问题 我可以像毫秒一样得到日期: date +"%S.%N"date --rfc-3339=ns 根据man date,我希望能够这样设置: date --set=%s.%N +`date +"%S.%N"`date --set="%s.%N" "+1323217126.085
可能解决方案
date --set="2011-12-07 01:20:15.962"  && date --rfc-3339=ns

原始问题

我可以像毫秒一样得到日期:

date +"%S.%N"
date --rfc-3339=ns

根据man date,我希望能够这样设置:

date --set=%s.%N +`date +"%S.%N"`
date --set="%s.%N" "+1323217126.085882000"

根据my googling我希望能够像这样设置日期(与上面相反):

date +%s.%N -s `date +"%S.%N"`
date +"%s.%N" -s "1323217126.085882000"

都没有工作.有人能在这个问题上提醒我吗?

附:不,我不需要纳秒分辨率.是的,我知道bash执行需要几毫秒.我真正需要的是亚秒级分辨率,十分之一秒就足够了.

这是一个解决方案(Linux,而不是Unix):
date --set="2011-12-07 01:20:15.962"  && date --rfc-3339=ns

注意延迟:

CURTIME=`date --rfc-3339=ns`
date --set="${CURTIME}"    
NEWTIME=`date --rfc-3339=ns`
echo ${CURTIME}
echo ${NEWTIME}

2011-12-07 01:48:54.687216122+00:00
2011-12-07 01:48:54.720541318+00:00

正如您将注意到的,引入了整整毫秒的延迟.这是由于为初始化内存和加载日期二进制文件所花费的时间.这适用于所有shell和insert-higher-level-language-exec的exec

但是,如果你只需要在10秒钟范围内的亚秒级分辨率,这在很多情况下都足够好了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读