在OSX中将日期转换为Unixtime,精确到毫秒级

时间:2014-12-02 22:58:46

标签: macos bash

我想使用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

输出用于创建过滤器,而不是发现当前系统时间

2 个答案:

答案 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,以用作过滤器或测试应用程序系统时间。