我可以从Unix命令行获得UTC偏移量吗?

vy3*_*y32 18 unix autoconf command-line utc

我正在编写一个需要当前UTC偏移量的autoconf脚本.没有明显的方法可以将其从日期计划中删除.是否有任何直接的方法从命令行实用程序获取此功能,或者我应该编写一个获取信息并以某种方式捕获它的测试?

Til*_*ill 23

试试这个,看看它是否适合你:

date +%z
Run Code Online (Sandbox Code Playgroud)


sag*_*age 7

对于其他做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
Run Code Online (Sandbox Code Playgroud)

我喜欢那些,因为缺少标点符号支持普遍使用.请注意,大写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
Run Code Online (Sandbox Code Playgroud)

请参阅man strftime支持的格式.例如,一些系统支持使用%:z,%:: z或%::: z将冒号插入到偏移中 - 我的五个系统中只有两个(Debian,Ubuntu,但是Mac,BusyBox,QNX没有) .

我经常回到https://en.wikipedia.org/wiki/ISO_8601作为参考.