Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Konversi string Python DateTime menjadi milidetik integer

[Diedit saran berikut di komentar]

Menggunakan Ben Alpert jawaban untuk Bagaimana saya bisa mengonversi objek datetime menjadi milidetik sejak Epoch (waktu unix) dengan Python kita dapat melakukan hal berikut:

from datetime import datetime
def unix_time(dt):
    epoch = datetime.utcfromtimestamp(0)
    delta = dt - epoch
    return delta.total_seconds()

def unix_time_millis(dt):
    return int(unix_time(dt) * 1000)

a = datetime.strptime("2015-06-27T02:10:05.653000Z", "%Y-%m-%dT%H:%M:%S.%fZ")
unix_time_millis(a)

kembali:

1435371005653

yang setara dengan:Sab, 27 Jun 2015 02:10:05 GMT (seperti yang diharapkan)

Kita juga dapat menggunakan .strftime('%s') datetime untuk mendapatkan waktu unix, bahkan milidetik menggunakan yang berikut (tetapi ini tidak disarankan ):

from decimal import Decimal

int(Decimal(datetime.strptime("2015-06-27T02:10:05.653000Z", "%Y-%m-%dT%H:%M:%S.%fZ").strftime('%s.%f'))*1000)

kembali:

1435396205653

setara dengan:Sab, 27 Jun 2015 09:10:05 GMT (di mac saya di San Diego; Catatan :ini adalah 7 jam dari yang kami harapkan).

Penyebab kesalahan dijelaskan oleh J.F. Sebastian di komentar tautan di atas dan di ini jawaban tentang .strftime('%s') perilaku. J.F. Sebastian menunjukkan bahwa "itu tidak didukung, tidak portabel, mungkin secara diam-diam menghasilkan hasil yang salah untuk objek datetime yang sadar, gagal jika input dalam UTC (seperti dalam pertanyaan) tetapi zona waktu lokal bukan UTC"



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Query IN () Klausa Lambat pada Kolom Terindeks

  2. Apa arti istilah kueri impor csv MySQL berikut?

  3. daftar layanan brew menunjukkan mysql berjalan tetapi tidak dapat terhubung

  4. Operator perbandingan MySQL, spasi

  5. Temukan duplikat di tabel yang sama di MySQL