bash – 在solaris中将给定时间转换为秒
发布时间:2020-12-15 21:09:34 所属栏目:安全 来源:网络整理
导读:我有时间像2013-04-29 08:17:58.我需要将其转换为自纪元时间以来的秒数. 请不要perl和我的操作系统是solaris. %s不起作用. nawk’BEGIN {print srand()}’将当前时间转换为秒,但不会将给定时间转换为秒. 谢谢 解决方法 这是一个不需要perl的 shell函数: fu
我有时间像2013-04-29 08:17:58.我需要将其转换为自纪元时间以来的秒数.
请不要perl和我的操作系统是solaris. %s不起作用. nawk’BEGIN {print srand()}’将当前时间转换为秒,但不会将给定时间转换为秒. 谢谢 解决方法
这是一个不需要perl的
shell函数:
function d2ts { typeset d=$(echo "$@" | tr -d ':- ' | sed 's/..$/.&/') typeset t=$(mktemp) || return -1 typeset s=$(touch -t $d $t 2>&1) || { rm $t ; return -1 ; } [ -n "$s" ] && { rm $t ; return -1 ; } truss -f -v 'lstat,lstat64' ls -d $t 2>&1 | nawk '/mt =/ {printf "%dn",$10}' rm $t } $d2ts 2013-04-29 08:17:58 1367216278 请注意,返回的值取决于您的时区. $TZ=GMT d2ts 2013-04-29 08:17:58 1367223478 这个怎么运作: >第一行将参数转换为适合触摸的格式(此处为“2013-04-29> 08:17:58“ – >”201304290817.58“)>第二行创建一个临时文件>第三行将刚刚创建的文件的修改时间更改为所需的值>如果设置时间失败,即第四行中止该功能,即提供的时间是否无效>第五行跟踪ls命令以获取文件修改时间并将其打印为整数>第六行删除临时文件 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |