Senang memperbarui ini jika saya tidak mengerti dengan benar, tetapi berikut adalah beberapa contoh yang dapat membantu. Perhatikan bahwa ini menggunakan datetime modul alih-alih time .
>>> import datetime
Di sini kami menyiapkan contoh stempel waktu ts dan format f :
>>> ts = '2013-01-12 15:27:43'
>>> f = '%Y-%m-%d %H:%M:%S'
Mirip dengan apa yang Anda lakukan di atas, kami menggunakan strptime fungsi (dari datetime.datetime ) untuk mengubah string kita menjadi datetime objek berdasarkan parameter pemformatan:
>>> datetime.datetime.strptime(ts, f)
datetime.datetime(2013, 1, 12, 15, 27, 43)
Sekarang secara terbalik - di sini kita menggunakan datetime.datetime.now() untuk mendapatkan waktu saat ini sebagai datetime objek:
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2013, 1, 12, 0, 46, 54, 490219)
Dalam datetime kasus, strftime metode sebenarnya dipanggil pada datetime objek itu sendiri, dengan parameter pemformatan sebagai argumen:
>>> now.strftime(f)
'2013-01-12 00:46:54'
Dalam situasi Anda, alasan Anda mendapatkan kesalahan adalah karena time.time() mengembalikan float:
>>> time.time()
1357980846.290231
Tapi time.strftime membutuhkan time tuple, mirip dengan yang Anda miliki di atas. Tanpa masuk ke spiral menjengkelkan yaitu waktu, fungsi seperti time.localtime() akan mengembalikan time yang disebutkan di atas Tuple dan akan kembali seperti yang Anda harapkan:
>>> now = time.localtime()
>>> now
time.struct_time(tm_year=2013, tm_mon=1, tm_mday=12, tm_hour=0, tm_min=55, tm_sec=55, tm_wday=5, tm_yday=12, tm_isdst=0)
>>> f = '%Y-%m-%d %H:%M:%S'
>>> time.strftime(f, now)
'2013-01-12 00:55:55'