GMTエポック時間

GMTエポック時間

存在するAIX

date -uGMT形式で日付と時刻を提供します。
dateローカルタイムゾーンの日付と時刻を提供します。
date +%s現地時間をエポック時間として提供します。

GMT時間をエポック形式で取得する方法はありますか?

私のバージョンのAIXでは、-nおよび-uオプションのみを使用できます。したがって、-f オプションは使用できません。

私の目標は、現地時間とGMTの間の時間ごとのオフセットを計算することです。

私は$TZ environment variableこれが退屈であることができることを分析できる。代わりに、2つの時間帯の間の新起源の視差を60で割ることで、おおよその答えを得ることができます。

ベストアンサー1

「エポック形式の現地時間」のようなものはありません。date +%s常にエポック以降の秒数、つまり1970-01-01 UTC以降の秒数を印刷します。数値はすべての時間帯で同じです。

ただし、ほとんどのstrftime(3)実装では、date +%z指定されたタイムゾーンの数値オフセットを印刷します。

$ TZ=Australia/Darwin date +%z
+0930
$ TZ=America/Toronto date +%z
-0400

これはGNUdateとBSDで動作しますdate。しかし、私はAIXについて何も知りません。

動作すると仮定すると、すべての時間帯に対してオフセットを秒単位で計算できます。そしてbash

#! /bin/bash
offset="$(TZ="$1" date +%z)"
sign=${offset:0:1}1
hours=${offset:1:2}
minutes=${offset:3:2}
if [ x"${hours:0:1}" = x0 ]; then hours="${hours:1}"; fi
if [ x"${minutes:0:1}" = x0 ]; then minutes="${minutes:1}"; fi
printf 'offset of TZ=%s: %d\n' "$1" $(( sign * 3600 * hours + 60 * minutes ))

おすすめ記事