nic-segawa
2016年10月17日 14時01分
お世話になります。
Armadillo-410のシステムクロックから時刻を取得しようとしています。
QtのQDateTimeクラスのQDateTime::currentDateTime()を用いて現在時刻を取得しました。
しかし、取得される時刻がUTCでの時刻となってしまします。
LinuxのコンソールからDateコマンドを実行すると以下の通りとなります。
[root@armadillo440-0 (ttymxc1) ~]# date
Mon Oct 17 13:37:22 JST 2016
タイムゾーンはJSTで設定されているので、JSTのままの時間が取得されてほしいのですが、方法はあるのでしょうか?
よろしくお願い致します。
コメント
nic-segawa
at_takashi.sasayama
笹山です。
> TZ=JST、TG=UTCと設定してもQDateTime::currentDateTime()の結果はUTC時刻のままでした。(dateコマンドの結果は設定どおりに変わります)
すいません。先に記載しました、以下は当方の確認ミスでした。
TZ=JST の時は、どちらも UTC で取得されますね。失礼いたしました。
> 例えば、TZ が JST に設定されていると、date の結果と、QDateTime::currentDateTime() の結果が
> 異なる現象が発生します。
> (date の結果がUTC、QDateTime::currentDateTime()の結果が JST になります)
当方のアプリでは以下の様なコードで確認をしていますが、似たような感じでしょうか?
QDateTime dt = QDateTime::currentDateTime(); QPushButton hello(dt.toString("yyyy/MM/dd/hh/mm/ss")); hello.resize(200, 50); hello.show();
また、以下の様にアプリ実行時に環境変数 TZ を直接指定しても JST での取得はできないでしょうか?
[Armadillo]# TZ=JST-9 ./qtapp -qws
nic-segawa
at_takashi.sasayama
2016年10月17日 15時03分
笹山です。
> タイムゾーンはJSTで設定されているので、JSTのままの時間が取得されてほしいのですが、方法はあるのでしょうか?
環境変数 TZ が JST-9 に設定されているか確認していただけないでしょうか?
例えば、TZ が JST に設定されていると、date の結果と、QDateTime::currentDateTime() の結果が
異なる現象が発生します。
(date の結果がUTC、QDateTime::currentDateTime()の結果が JST になります)
環境変数 TZ の設定例