Bagaimana Anda melakukannya terbalik gmtime()
, di mana Anda meletakkan waktu + tanggal dan mendapatkan jumlah detik?
Saya memiliki string seperti 'Jul 9, 2009 @ 20:02:58 UTC'
, dan saya ingin mendapatkan kembali jumlah detik antara zaman dan 9 Juli 2009.
Saya sudah mencoba time.strftime
tetapi saya tidak tahu bagaimana menggunakannya dengan benar, atau apakah itu perintah yang benar untuk digunakan.
Gunakan modul waktu :
sumber
time
menggunakan Unix epoch (1970).time.time()
nilai TIDAK tergantung pada zona waktu lokal (jika kita mengecualikan zona waktu "benar" dan sejenisnya) misalnya, jika mengembalikan waktu POSIX (seperti halnya pada kebanyakan sistem) maka itu adalah jumlah detik SI sejak Epoch (1970-01-01UTC) tidak menghitung detik kabisat. Nilai ini dapat dikonversi ke UTC (tidak termasuk detik kabisat) tetapi bukan UTC . @ MarslonAbeykoon: Saya suka jawaban iniPerhatikan bahwa
time.gmtime
cap waktu peta0
untuk1970-1-1 00:00:00
.time.mktime(time.gmtime(0))
memberi Anda cap waktu bergeser dengan jumlah yang tergantung pada lokal Anda, yang secara umum mungkin tidak 0.Kebalikannya
time.gmtime
adalahcalendar.timegm
:sumber
mktime()
dengangmtime()
.mktime()
menerima waktu lokal Anda tetapigmtime()
mengembalikan waktu UTC - zona waktu lokal Anda mungkin dan kemungkinan akan berbeda. "timestamp relatif terhadap lokal Anda" tidak masuk akal: stempel waktu POSIX tidak tergantung pada lokal Anda (zona waktu lokal) - ini adalah nilai yang sama di seluruh dunia. "detik sejak zaman" adalah cap waktu POSIX dalam kebanyakan kasus (bahkan pada Windows) - hal-hal seperti zona waktu "benar" yang menggunakan skala waktu TAI tidak umum. Lihat Apakah time.time Python () mengembalikan stempel waktu lokal atau UTC?mktime()
baru - baru ini. Untuk beberapa server web python (Tornado misalnya), karena proses terus berjalan, bahkan jika saya mengubah sistem lokal, yangmktime()
disebut oleh server web API masih menggunakan zona waktu lama untuk menghasilkan objek waktu. Saya harus beralih kegmtime()
dan secara manual menerapkan gmt offset.Ini harus berbeda dari
int(time.time())
, tetapi aman untuk menggunakan sesuatu sepertix % (60*60*24)
datetime - Tipe tanggal dan waktu dasar:
sumber
sumber
from datetime import datetime
melakukannya atau melakukandatetime.datetime.strptime
Ada dua cara, tergantung pada cap waktu asli Anda:
mktime()
dantimegm()
http://docs.python.org/library/time.html
sumber