Windows Subsystem for LinuxにおけるDSTの意味とは?

このQ&Aのポイント
  • Windows Subsystem for Linux(WSL)が正式版になり、Windows 10で動作しているUbuntuにてdateコマンドを実行した結果、DSTというタイムゾーンが表示されました。
  • DSTはDaylight Saving Time(夏時間)を表すもので、日本と同様のタイムゾーンを示しています。
  • 環境変数TZにはJapan以外の国名がセットされていないため、DSTが表示されるようです。
回答を見る
  • ベストアンサー

dateコマンドで出てくるDST

Windows 10 で動く Windows Subsystem for Linux が正式版になったので早速インストールして Ubuntu で動かしています。そこでコマンドラインから date コマンドを実行したところ以下のように出力されました。 Wed Nov 15 18:00:01 DST 2017 この DST とはなんでしょう? 普通なら JST 等のタイムゾーンが出る所ですよね? DST という名称のタイムゾーンがあるんでしょうか? (だとすると Daylight Saving Time と同じで非常に紛らわしいように思いますが)。 一体これはどういうことかと思い、 date '+%Z %z' をやってみたらこう出ます。 DST +0900 どうやら日本と同じようです。環境変数 TZ に Japan 以外の何か知らない国名がセットされているのかなと思って $TZ を出してみましたが空で、env | grep TZ で出力がないので TZ は完全にセットされていないようです。 じゃあ TZ を Japan にセットしたらどうなるのかというと、これは以下のように JST で出ます。(以下は最初の行が date のみ、次の行が date '+%Z %z' の出力) Wed Nov 15 18:04:49 JST 2017 JST +0900

質問者が選んだベストアンサー

  • ベストアンサー
  • kteds
  • ベストアンサー率42% (1876/4424)
回答No.1

>(だとすると Daylight Saving Time と同じで非常に紛らわしいように思いますが)。 まさにDaylight Saving Timeを表示しているということなのでは?

noboru2000
質問者

お礼

ありがとうございます。しかしそうではないようで、どうやら Bash on Ubuntu on Windows の頃からあるバグのようです。 http://tech.guitarrapc.com/entry/2017/06/20/033946 https://github.com/HowardHinnant/date/issues/102 http://pslabo.hatenablog.com/entry/2017/08/26/210928 しょうがないので自分でシンボリックリンクすることにします。

関連するQ&A

  • Linuxでdateコマンド出力をmmddyyで出したい

    Linux初心者です。 Linuxでdateコマンド出力をmmddyy形式で出したい。 #date (例)Wed Oct 17 01:13:44 JST 2001 という出力をmmddyy形式で出力させるには、 どうしたら、良いでしょうか?

  • サーバーのdateをUTCにする方法

    ネット調べてJSTからUTCに変更しましたが、表示はJSTのまま。ほかの設定のところ、又は別の原因、経験お持ちの方、教えてください。 やったこと: (1)rootになって、/rootの位置から/etc/localtimeを削除し、新しいソフトリンクを作る。 ln -s /usr/share/zoneinfo/UTC /etc/localtime (2)/etc/sysconfig/clockをviで開いて、以下の様に設定する。 ZONE="UTC" --> もともとはAsia/Tokyoだった。 UTC=true ARC=false 以上で、成功した場合、dateコマンドでUTCになったことが確認できますよね。 私の場合、表示はJSTのまま。 Wed Nov 27 22:26:03 JST 2013 clockコマンド実行すると、おかしいこと(面白いこと?)起きる。 ようは、 Wed 27 Nov 2013 01:26:57 PM JST -0.751004 seconds のように表示されて、時間表示=「01:26:57 PM」=は合っています。ただし、”UTC”でなく”JST”になっています。

  • timedatectlコマンドに関して

    linux(CentOS7)のtimedatectlコマンドに関して 最初見たときにデフォルトが以下のような感じでした。 timedatectl Local time: Mon 2017-02-17 13:43:53 JST Universal time: Mon 2017-02-17 04:43:53 UTC RTC time: n/a Time zone: UTC (JST, +0900) NTP enabled: n/a NTP synchronized: yes RTC in local TZ: no DST active: n/a 「Local time」だけJST でyum updateした後に、「Local time」もUTCとなり時刻がおかしくなりました。 治す方法を探していると、 timedatectl set-timezone Asia/Tokyo で直せと書いているのですが、 それをすると時刻の刻みは治りますが、元通りでないのが釈然としません。 timedatectl Local time: Fri 2017-02-17 16:04:21 JST Universal time: Fri 2017-02-17 07:04:21 UTC RTC time: n/a Time zone: Asia/Tokyo (JST, +0900) NTP enabled: n/a NTP synchronized: no RTC in local TZ: no DST active: n/a 元通りにする方法はありませんか。 それと、 Time zoneをUTCにしてローカルとしてJSTにするのと、 Time zoneそのものをJSTにするのとでは何が違いますか? 以上、よろしくお願いします。

  • HPUX 11iでの日付について

    AIX環境では、「env TZ=JST+63 date」コマンドで 三日前の日付が取得できたのですが、 HPUX 11iでは日付が取得できません。 結果としてはTZがJSTからEDTになってしまいます。 どうにかして、3日前を取得することは出来ませんでしょうか? 確認したところJST+では24までしか対応しておりませんでした。 HPUX 11i [TEST:root]env TZ=JST+63 date Wed May 31 03:42:48 EDT 2006 AIX 5.1 [TEST2:root]env TZ=JST+63 date Sun May 28 16:46:54 JST 2006

  • Solaris9でdateコマンドの結果がおかしい

    sun fire + Solaris9でシェルを作成しました。 目的は、1ヶ月前のログを削除する です。 で、こんなシェルを作成しました。 #!/bin/sh # logmove.sh DAY=`date +%d` RMDAY=`env TZ=JST+735 date +%Y%m%d` # 24H*31Day-9H=735 RMFILE=log_${RMDAY}.* (以下省略) しかし、この結果、$RMDAYには今日の日付しか返ってきません。これを RMDAY=`env TZ=JST+159 date +%Y%m%d` # 24H*7Day-9H=159 とすると、ちゃんと1週間前の日付が返ってきます。 dateの仕様なのか、シェルの仕様なのか良くわかりません。解決策はないでしょうか。

  • コマンド

    以下のシェルスクリプトをパイプ等をつかって1行のコマンドで簡潔に書きたいとき、どう書けばいいでしょうか? $ ./test.sh src dst -- test.sh ---------------- #! /bin/bash src=$1 dst=$2 for i in $(cat ./files) do  何かのコマンド $i $1 $2; done; これを1行のコマンドで書くとしたら??

  • タイムゾーンの設定について(CentOs)

    LAMPにてWEBを制作をしています。 linux系はちょこちょこ触ったことはあるのですが深く知らないといったレベルです。 ですので説明下手になり長くなりますが最後まで目を通して頂けたら幸いです。 調査→対応→現状までの流れを説明させていただきます。 --------------------------------------------------------------------- 現在、デバッグを行うためにシステム時間をちょこちょこ変えながらテストをしてるのですが 私の環境のみ 日付がAM8時で日にちが変わるという状態になり、いろいろ調べてるうちに タイムゾーンの問題という事にきづきました。 dateコマンドでタイムゾーンがPDTになっいるのを確認し /etc/sysconfig/clock が/America/Los になっていたので/Asia/Tokyoに修正。 reboot dateコマンド PDTから変わらず。 で、さらに調べて /usr/share/zoneinfo/Asia/Tokyo もしくは /Japanのファイルを/etc/locatimeにリンクしました。 reboot dateコマンド PDTから変わらず。 その後、 ・環境変数のTZにJSTをぶち込んだり ・sysconfig/clockをGMTで記述してみたりと とりあえずの処置で対応してたのですが 気持ち悪い&悔しいので再度調査したのですがどこもlocaltimeのリンクを直すような記事しか のってない状態で困っています。 その後私の環境のJapanもしくはAsiaTokyoのファイルそのものがPDTになちゃってるのではと思い、 正常に動いているメンバの環境から同ファイルをコピし環境に入れ込みました。 するとdataコマンドできちんとJSTと表示され、解決したかと思ったのですが rebootするとGMTに戻ってしまいました。 sysconfig/clockがその時、前の対応でGMTで記述してたのでそれが問題かと思い Japanに修正し、rebootしなおした所正常にJSTになりました。 原因はいまいちわからないけどとりあえず当初の目標は達成したかと思ったのですが 日付の変更を行った直後にdataコマンドを投げた所今度はタイムゾーンがEDTになりました… さらにsysconfig/clockの中身も/America/New_York になるという新展開に。。。 もうこうなってくるとさすがに何がなんだかわからなくなってしまいここで質問させて いただいた次第です。 何か原因が分かる方、もしくは対処方法がわかる方いましたら 参考URLだけでもいいので教えて頂けると助かります。 もし何か情報として足りない物があれば指摘していただければと思います。 また、説明下手な上に乱文になってしまい大変申し訳ありませんでした。 最後まで読んでいただいた方には感謝いたします。

  • 日付と時刻の表示方法

    コマンドプロンプトにて、日付と時刻を1行の中に ”2009/08/20 11:26” のように出力させる方法があれば教えてください。 コマンドプロンプトにて、以下のようにそれぞれ別個に出力させることはできました。 date /t 2009/08/20 time /t 11:26 しかし、日付と時刻を1行の中に出力できないので、おわかりになる方がおられればご回答、お願いします。

  • typeperfコマンドを使用したバッチについて

    とあるPCについて、CPU使用率とメモリ使用量を一定期間(例えば1時間、1日間など)監視するために、 typeperfコマンドを使った以下のようなバッチファイルを作成しました。 ----- 条件:  1. プロセス毎に監視したい  2 結果はcsv形式でファイルに出力したい  3. 監視開始後に起動したプロセスについても監視したい 対象OS:  Windows 7 バッチ記述内容: @ECHO OFF setlocal enabledelayedexpansion for /l %%i in (1,1,360) do ( set OUTDIR=C:\temp\ set YYYY=!DATE:~0,4! set MM=!DATE:~5,2! set DD=!DATE:~8,2! set HH=!TIME:~0,2! set MI=!TIME:~3,2! set SS=!TIME:~6,2! set FILENAME=!OUTDIR!log_!YYYY!!MM!!DD!!HH!!MI!!SS!.csv echo ファイル出力:!FILENAME! typeperf -sc 1 "\Processor(*)\%% Processor Time" "\Process(*)\Working Set" > !FILENAME! ping localhost -n 10 > nul ) pause 補足: 上記のバッチでは、typeperfコマンドは1回のみ実行し、 for文で10秒ごとに360回(=1時間)繰り返しています。 ちなみに、ゆくゆくは1日間程度監視したいと思っているので、 可能であれば1ファイルにまとめて出力したいです。 (上記の場合は、出力ファイル名を一意にするために「log_yyyymmddhhmmss.csv」にしていますが、 まとめられるのであれば何でもいいです) ----- 実行した結果、CSVは問題なく出力されるのですが、 出力されたCSVの末尾に「終了しています。お待ちください... コマンドは、正しく完了しました。」 というメッセージが付いてしまいます。 上記メッセージ以外の部分だけをファイルに出力することはできないのでしょうか? 一旦ファイルに出力してから、文字列置換するしかないのでしょうか? 何かいい方法があれば教えてください。

  • ntpdateで時刻同期すると一日ずれます。

    Linuxでntpdateで時刻同期すると一日ずれます。 # date 2010年 11月 11日 木曜日 09:34:21 JST 今日は11月10日です。 # date -s 20101110 2010年 11月 10日 水曜日 00:00:00 JST #ntpdate -b ntp.nict.jp 11 Nov 09:35:24 ntpdate[22948]: the NTP socket is in use, exiting # date 2010年 11月 11日 木曜日 09:35:28 JST なぜか11日にもどされます。 # hwclock --show # 何も表示されません。 # cat /etc/sysconfig/clock ZONE="Asia/Tokyo" UTC=true ARC=false 他のサーバにつないでも同様でした。 # date -s 20101110 2010年 11月 10日 水曜日 00:00:00 JST #ntpdate -b eric.nc.u-tokyo.ac.jp 11 Nov 12:30:03 ntpdate[23329]: step time server 130.69.251.23 offset -86403.273202 sec # ntpdate -b 11 Nov 12:31:01 ntpdate[23331]: no servers can be used, exiting # ntpdate -b ntp.sut.ac.jp 11 Nov 12:31:13 ntpdate[23332]: step time server 133.31.180.6 offset -86403.269931 sec # ntpdate -s ntp.sut.ac.jp # date 2010年 11月 11日 木曜日 12:31:33 ntpはもちろんはいっています。 #rpm -qa ntp ntp-4.2.2p1-9.el5.centos.2.1 よろしければアドバイスをいただけないでしょうか?