[解決済み】UTCの日付時間の文字列をローカルの日付時間に変換する
質問
これまでUTCとの時刻変換をする必要がありませんでした。最近、自分のアプリをタイムゾーンに対応させたいという要望があり、自分自身をぐるぐると回しています。ローカルタイムをUTCに変換する情報はたくさんあり、それはかなり初歩的なことだと思いますが(たぶん、これも間違っている)、UTC時間をエンドユーザーのタイムゾーンに簡単に変換する情報は見つかりませんでした。
簡単に言うと、アンドロイドアプリが私(appengineアプリ)にデータを送ってきて、そのデータの中にタイムスタンプが含まれているのです。そのタイムスタンプをUTC時間に保存するために、私は使用しています。
datetime.utcfromtimestamp(timestamp)
これでうまくいっているようです。私のアプリがデータを保存するとき、それは5時間先として保存されます(私はEST -5です)。
データはappengineのBigTableに保存されており、取得するとこのような文字列で出てくる。
"2011-01-21 02:37:21"
この文字列を、ユーザーの正しいタイムゾーンの DateTime に変換するにはどうすればよいですか?
また、ユーザーのタイムゾーン情報を保存するには、どのような方法が推奨されますか? (一般的にどのように時間帯情報を保存するのですか?例えば "-5:00" or "EST" etc etc ?) 私の最初の質問に対する答えには、2番目の質問への答えとなるパラメータが含まれているかもしれないと思います。
解決方法は?
自社で
tzinfo
オブジェクトを確認します。
python-dateutil(パイソンデートル
のライブラリーを使用しています。 を提供しています。
tzinfo
の上に実装されます。
ゾーンインフォ(オルソン)データベース
というように、タイムゾーンのルールをある程度標準的な名前で参照できるようにします。
from datetime import datetime
from dateutil import tz
# METHOD 1: Hardcode zones:
from_zone = tz.gettz('UTC')
to_zone = tz.gettz('America/New_York')
# METHOD 2: Auto-detect zones:
from_zone = tz.tzutc()
to_zone = tz.tzlocal()
# utc = datetime.utcnow()
utc = datetime.strptime('2011-01-21 02:37:21', '%Y-%m-%d %H:%M:%S')
# Tell the datetime object that it's in UTC time zone since
# datetime objects are 'naive' by default
utc = utc.replace(tzinfo=from_zone)
# Convert time zone
central = utc.astimezone(to_zone)
編集
示すために例を拡大した。
strptime
例
編集2 API の使用方法を修正し、より良いエントリポイント・メソッドを表示するようにしました。
3を編集 タイムゾーンの自動検出方法を追加しました。
関連
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] バイトを文字列に変換する
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] DateTime型の誕生日から年齢を計算するにはどうしたらいいですか?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] datetimeをdateに変換するにはどうすればよいですか?
-
[解決済み] Pythonでタイムゾーンを意識したdatetimeオブジェクトを作るには?
-
[解決済み] ローカルタイム文字列をUTCに変換する方法は?
-
[解決済み】文字列をdatetimeに変換する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PythonでECDSAを実装する方法 知っていますか?
-
[解決済み] [Solved] sklearn error ValueError: 入力に NaN、infinity または dtype('float64') に対して大きすぎる値が含まれている。
-
[解決済み】ImportError: sklearn.cross_validation という名前のモジュールがない。
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac
-
[解決済み] ローカルタイム文字列をUTCに変換する方法は?
-
[解決済み】標準ライブラリだけを使って、UTCのdatetimeをローカルのdatetimeに変換する方法は?
-
[解決済み】Python strptime()とタイムゾーンの関係?