3

これは他の場所でよく取り上げられている質問であることはわかっていますが、SOで見たほとんどの質問は、反対の方向に進んでいるように見えました. 次のように FROM TO 人間が読める日時形式に変換する方法を理解してtime.time()います。

>>> import time, datetime
>>> thetime = time.time()
>>> thetime
1375289544.41976
>>> datetime.datetime.fromtimestamp(thetime).strftime("%Y-%m-%d %H:%M:%S")
'2013-07-31 12:51:08'

逆方向に行くための関数は何ですか?

>>> thetime = '2013-07-30 21:23:14.744643'
>>> time.strptime(thetime, "%Y-%m-%d %H:%M:%S")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/_strptime.py", line 454, in _strptime_time
    return _strptime(data_string, format)[0]
  File "/usr/lib/python2.7/_strptime.py", line 328, in _strptime
    data_string[found.end():])
ValueError: unconverted data remains: .744643

エポック形式から文字列から秒に移動したいと思います。

アップデート

これは私が使用しているものですが、エレガントではないようです---これを行う関数が既にあるはずですよね?

def datetostamp(x):
    thetime = x.split('.')
    return(time.mktime(time.strptime(thetime[0], "%Y-%m-%d %H:%M:%S")) + float('.'+thetime[1]))

>>> thetime = '2013-07-30 21:23:14.744643'
>>> datetostamp(thetime)
1375233794.744643

更新 2

もっと簡単に言えば、ほんの数秒でフォーマットコードが欠落しているのですか?

4

1 に答える 1

3

ほんの一瞬のフォーマットがありませんでした。

time.strptime(thetime, "%Y-%m-%d %H:%M:%S.%f")

于 2013-07-31T17:51:19.840 に答える