使用bash日期格式化不一致

时间:2014-06-24 17:33:05

标签: bash date

也许是一个初学者问题,但是当我尝试使用日期(内置bash日期)来格式化日期时,但它不一致,因为给定日期和格式化日期不一样。

命令:

date -d "2013-11-12T13:00:00.001260Z" +"%Y.%m.%d %H:%m:%S %Z"

输出:

2013.11.12 14:11:00 CET

如您所见,日期不相等。

2013-11-12T13:00:00.001260Z!= 2013.11.12 14:11:00 CET

我做错了什么?

我还尝试了另一种输入日期格式,但效果都不好:

命令:

date -d "2013-11-12 13:00:00" +"%Y.%m.%d %H:%m:%S %Z"

输出:

2013.11.12 13:11:00 CET

1 个答案:

答案 0 :(得分:0)

这是正确的,因为%m是月份,而您指定了第11个月。

<强>命令:

date -d "2013-11-12 13:00:00" +"%Y.%m.%d %H:%m:%S %Z"

<强>输出:

2013.11.12 13:11:00 CET

将%m更改为%M(分钟)

<强>命令

 date +"%Y.%m.%d %H:%M:%S %Z" -d "2013-11-12 13:00:00"

<强>输出

2013.11.12 13:00:00 UTC

有关格式化选项的完整列表,请参阅man date。

FORMAT controls the output.  Interpreted sequences are:

   %%     a literal %

   %a     locale's abbreviated weekday name (e.g., Sun)

   %A     locale's full weekday name (e.g., Sunday)

   %b     locale's abbreviated month name (e.g., Jan)

   %B     locale's full month name (e.g., January)

   %c     locale's date and time (e.g., Thu Mar  3 23:05:25 2005)

   %C     century; like %Y, except omit last two digits (e.g., 20)

   %d     day of month (e.g., 01)

   %D     date; same as %m/%d/%y

   %e     day of month, space padded; same as %_d

   %F     full date; same as %Y-%m-%d

   %g     last two digits of year of ISO week number (see %G)

   %G     year of ISO week number (see %V); normally useful only with %V

   %h     same as %b

   %H     hour (00..23)

   %I     hour (01..12)

   %j     day of year (001..366)

   %k     hour, space padded ( 0..23); same as %_H

   %l     hour, space padded ( 1..12); same as %_I

   %m     month (01..12)

   %M     minute (00..59)

   %n     a newline

   %N     nanoseconds (000000000..999999999)

   %p     locale's equivalent of either AM or PM; blank if not known

   %P     like %p, but lower case

   %r     locale's 12-hour clock time (e.g., 11:11:04 PM)

   %R     24-hour hour and minute; same as %H:%M

   %s     seconds since 1970-01-01 00:00:00 UTC

   %S     second (00..60)

   %t     a tab

   %T     time; same as %H:%M:%S

   %u     day of week (1..7); 1 is Monday

   %U     week number of year, with Sunday as first day of week (00..53)

   %V     ISO week number, with Monday as first day of week (01..53)

   %w     day of week (0..6); 0 is Sunday

   %W     week number of year, with Monday as first day of week (00..53)

   %x     locale's date representation (e.g., 12/31/99)

   %X     locale's time representation (e.g., 23:13:48)

   %y     last two digits of year (00..99)

   %Y     year

   %z     +hhmm numeric time zone (e.g., -0400)

   %:z    +hh:mm numeric time zone (e.g., -04:00)

   %::z   +hh:mm:ss numeric time zone (e.g., -04:00:00)

   %:::z  numeric time zone with : to necessary precision (e.g., -04, +05:30)

   %Z     alphabetic time zone abbreviation (e.g., EDT)