我正在编写一个需要当前UTC偏移量的autoconf脚本.没有明显的方法可以将其从日期计划中删除.是否有任何直接的方法从命令行实用程序获取此功能,或者我应该编写一个获取信息并以某种方式捕获它的测试?
试试这个,看看它是否适合你:
date +%z
对于其他做ISO8601的人,您可以选择以下变体:
date +%Y%m%dT%H%M%S%z # 20140809T092143-0700 date -u +%Y%m%dT%H%M%S%z # 20140809T162143+0000 date -u +%Y%m%dT%H%M%SZ # 20140809T162143Z
我喜欢那些,因为缺少标点符号支持普遍使用.请注意,大写Z是"硬编码"的UTC - 使用%Z将放置UTC或其他指定的时区.如果您更喜欢标点符号:
date +%Y-%m-%dT%H:%M:%S%z # 2014-08-09T09:21:43-0700 date +%Y-%m-%dT%H:%M:%S%:z # 2014-08-09T09:21:43-07:00 - NOT ALL SYSTEMS date -u +%Y-%m-%dT%H:%M:%S%z # 2014-08-09T16:21:43+0000 date -u +%Y-%m-%dT%H:%M:%S%:z # 2014-08-09T16:21:43+00:00 - NOT ALL SYSTEMS date -u +%Y-%m-%dT%H:%M:%SZ # 2014-08-09T16:21:43Z
请参阅man strftime
支持的格式.例如,一些系统支持使用%:z,%:: z或%::: z将冒号插入到偏移中 - 我的五个系统中只有两个(Debian,Ubuntu,但是Mac,BusyBox,QNX没有) .
我经常回到https://en.wikipedia.org/wiki/ISO_8601作为参考.