システムのタイムゾーンの取得方法
Debian系Linux
$ cat /etc/timezone
Linux の大半
/etc/localtime が tz database のタイムゾーンファイルへのシンボリックリンクになっている。
code:localtime.console
$ ls -l /etc/localtime
lrwxrwxrwx. 1 root root 32 Feb 3 13:25 /etc/localtime -> ../usr/share/zoneinfo/Asia/Tokyo
systemd系
timedatectl コマンドでタイムゾーンを確認できる。
code:systemd_result.console
$ timedatectl
Local time: Wed 2020-02-19 15:23:44 JST
Universal time: Wed 2020-02-19 06:23:44 UTC
RTC time: Tue 2020-02-18 15:49:14
Time zone: Asia/Tokyo (JST, +0900)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
Windows PowerShell
Get-WmiObject は現在では廃止されている。
code:cim.console
Get-CimInstance Win32_TimeZone
Bias SettingID Caption
---- --------- -------
540 (UTC+09:00) 大阪、札幌、東京
Get-CimInstance Win32_TimeZone | Format-List *
Caption : (UTC+09:00) 大阪、札幌、東京
Description : (UTC+09:00) 大阪、札幌、東京
SettingID :
Bias : 540
DaylightBias : -60
DaylightDay : 0
DaylightDayOfWeek : 0
DaylightHour : 0
DaylightMillisecond : 0
DaylightMinute : 0
DaylightMonth : 0
DaylightName : 東京 (夏時間)
DaylightSecond : 0
DaylightYear : 0
StandardBias : 0
StandardDay : 0
StandardDayOfWeek : 0
StandardHour : 0
StandardMillisecond : 0
StandardMinute : 0
StandardMonth : 0
StandardName : 東京 (標準時)
StandardSecond : 0
StandardYear : 0
PSComputerName :
CimClass : root/cimv2:Win32_TimeZone
CimInstanceProperties : {Caption, Description, SettingID, Bias…}
CimSystemProperties : Microsoft.Management.Infrastructure.CimSystemProperties
Get-WmiObject の場合
code:wmi.console
Get-WmiObject -Class Win32_TimeZone -Namespace "Root\CIMV2"
Bias SettingID Caption
---- --------- -------
540 (UTC+09:00) 大阪、札幌、東京
.NET (C#)
System.TimeZoneInfo.Local で取得可能
System.TimeZone.Local は deprecated
JavaScript(Webブラウザ)
ローカルタイムゾーンを取得するAPIは存在しない。
UTC との現在の時差のみを取得できる。
code:getOffset.js
var date = new Date();
console.log(date.getTimezoneOffset());
サードパーティーで情報を組み合わせて推測するライブラリはある。