我想使用Bash用户输入来输入年,月,日,小时来创建毫秒精度的unixtimestamp - 请提供有关MACOSX10.9的date命令的帮助
#! /usr/bin/env bash
read -e -p "year? " year
read -e -p "month? " month
read -e -p "day? " day
read -e -p "hour? " hour
echo date ......
示例位数到毫秒精度1417502014450
输出用于创建过滤器,而不是发现当前系统时间
答案 0 :(得分:1)
您可以使用以下命令获取时间戳(以秒为单位)
date -jf '%F %T' "$year-$month-$day $hour:00:00" +%s
据我所知,毫秒是不受支持的,但你总是可以乘以1000.
echo $(( $(date -jf '%F %T' "$year-$month-$day $hour:00:00" +%s) * 1000 ))
请注意,此命令不可移植到GNU日期(即Linux)。
请参阅:
date(1)
strftime(3)
答案 1 :(得分:0)
如果输入是UTC,答案是
echo $(( $(date -jf '%F %T %z' "$year-$month-$day $hour:00:00 +0000" +%s) * 1000 ))
时区输入和日期算术可用于确保%z等于+0000以提供正确的unixtimestamp,以用作过滤器或测试应用程序系统时间。