回答編集履歴
2
表示結果にコメントを追加
answer
CHANGED
@@ -33,18 +33,18 @@
|
|
33
33
|
|
34
34
|
```
|
35
35
|
naive : 2017-10-05 12:55:08.247556
|
36
|
-
naive as UTC: 2017-10-05 12:55:08.247556+00:00
|
36
|
+
naive as UTC: 2017-10-05 12:55:08.247556+00:00 # ← 誤り
|
37
37
|
aware/UTC : 2017-10-05 03:55:08.247566+00:00
|
38
38
|
aware/JST : 2017-10-05 12:55:08.285712+09:00
|
39
39
|
-----------------------------------------------
|
40
40
|
naive -> TS: 1507175708.247556
|
41
|
-
naive as UTC -> TS: 1507208108.247556
|
41
|
+
naive as UTC -> TS: 1507208108.247556 # ← 誤り
|
42
42
|
aware/UTC -> TS: 1507175708.247566
|
43
43
|
aware/JST -> TS: 1507175708.285712
|
44
44
|
-----------------------------------------------
|
45
45
|
naive -> TS -> naive: 2017-10-05 03:55:08.247556
|
46
46
|
naive -> TS -> aware: 2017-10-05 03:55:08.247556+00:00
|
47
|
-
naive as UTC -> TS -> aware: 2017-10-05 12:55:08.247556+00:00
|
47
|
+
naive as UTC -> TS -> aware: 2017-10-05 12:55:08.247556+00:00 # ← 誤り
|
48
48
|
```
|
49
49
|
|
50
50
|
上記の naive -> TS -> naive および naive -> TS -> aware を見て下さい。ちゃんと戻っているでしょう?
|
@@ -53,9 +53,9 @@
|
|
53
53
|
|
54
54
|
---
|
55
55
|
|
56
|
-
追記:
|
56
|
+
ほかの方の回答を見て追記:
|
57
57
|
|
58
|
-
あ。`**日付**のエポック秒` というのはその日の 00:00:00 のUNIX時間を取得したいということですか?もしそうなら時間、分、秒を切り捨て
|
58
|
+
あ。`**日付**のエポック秒` というのはその日の 00:00:00 のUNIX時間を取得したいということですか?もしそうなら時間、分、秒、ミリ秒を切り捨てればOKです。
|
59
59
|
|
60
60
|
```python
|
61
61
|
today = datetime(
|
1
日付のタイムスタンプについて追記
answer
CHANGED
@@ -49,4 +49,21 @@
|
|
49
49
|
|
50
50
|
上記の naive -> TS -> naive および naive -> TS -> aware を見て下さい。ちゃんと戻っているでしょう?
|
51
51
|
|
52
|
-
今回は、`datetime.today()` で naive オブジェクトを作ったのがJST環境、それを `datetime.timestamp()` でUNIX時間に変換したのもJST環境だったのでたまたまうまくいっていますが、複数のタイムゾーンや夏時間がある国のタイムゾーンを取り扱う場合は、aware オブジェクトを使うことをおすすめします。
|
52
|
+
今回は、`datetime.today()` で naive オブジェクトを作ったのがJST環境、それを `datetime.timestamp()` でUNIX時間に変換したのもJST環境だったのでたまたまうまくいっていますが、複数のタイムゾーンや夏時間がある国のタイムゾーンを取り扱う場合は、aware オブジェクトを使うことをおすすめします。
|
53
|
+
|
54
|
+
---
|
55
|
+
|
56
|
+
追記:
|
57
|
+
|
58
|
+
あ。`**日付**のエポック秒` というのはその日の 00:00:00 のUNIX時間を取得したいということですか?もしそうなら時間、分、秒を切り捨てるだけでOKです。
|
59
|
+
|
60
|
+
```python
|
61
|
+
today = datetime(
|
62
|
+
*datetime.today().timetuple()[:3], # 年、月、日のみ抽出
|
63
|
+
tzinfo=pytz.timezone('Asia/Tokyo'))
|
64
|
+
print('now :', datetime.now(pytz.timezone('Asia/Tokyo')).timestamp())
|
65
|
+
print('today:', today.timestamp())
|
66
|
+
|
67
|
+
# now : 1507176685.737086
|
68
|
+
# today: 1507128060.0
|
69
|
+
```
|