2012-03-02 280 views
0

我想这段时间以毫秒为单位shell脚本的任何日期转换为毫秒

01/Mar/2012:09:08:00 

我以为做以下将存储新的日期,那么我可以将日期转换成毫秒

time=01/Mar/2012:09:08:00 
    newDate=date --set="$time"; 

我需要做些什么来完成这项工作?

+0

通过“时间以毫秒为单位”,做你的意思是Unix时代以来的毫秒数(1970-01-01)?请注意'01/Mar/2012:09:08:00'不是'date'命令识别的格式。你能以更传统的格式获得时间吗,比如'“01 Mar 2012 09:08:00”'? – 2012-03-02 12:47:26

+0

请编辑您的帖子以包含所需输出的示例。祝你好运。 – shellter 2012-03-02 15:50:09

回答

0

使用Timer()方法来获得时间然后把那个时候formatnumber()方法,像

FormatNumber(Timer(), 2) 
+0

问题在于Unix shell; 'Timer()'和'FormatNumber()'方法不存在。 – 2012-03-02 12:45:32

+0

@KeithThompson这个解决方案在VB脚本或shell脚本中可用。 – 2012-03-02 12:47:18

2

你应该'01/Mar/2012:09:08:00'转换为有效日期字符串'01 Mar 2012 09:08:00'

$ time=01/Mar/2012:09:08:00 
$ time="${time//// }" 
$ time="${time/:/ }" 
$ newDate=`date -d "$time" +%s000` 
$ echo $newDate 
1330564080000 
+0

追加'000'为毫秒:-) – hfs 2012-03-02 12:42:28

+0

是的你是对的 – kev 2012-03-02 12:46:00