Bagaimana cara mengonversi stempel waktu ke waktu Epoch dengan python?

Dalam komputasi, epoch time adalah tanggal dan waktu dari mana komputer mengukur waktu sistem. Ini adalah titik awal atau momen tetap dalam waktu yang digunakan untuk menghitung jumlah detik yang telah berlalu. Tanggal waktu komputer ditentukan menurut jumlah detik yang berlalu sejak waktu Epoch

Waktu Epoch juga dikenal sebagai waktu POSIX atau waktu UNIX. Misalnya, di sebagian besar versi UNIX, waktu epoch dimulai dari 00. 00. 00 UTC pada 1 Januari 1970

Jadi ketika kita mengonversi datetime menjadi detik kita akan mendapatkan jumlah detik sejak zaman. Ini berarti detik yang berlalu antara input datetime dan epoch time (00. 00. 00 UTC pada 1 Januari 1970)

Bagaimana mengkonversi datetime ke Detik dengan Python

Misalkan Anda memiliki datetime (2018,10,22) dalam format UTC dan Anda ingin menghitung jumlah detik sejak zaman. Langkah-langkah di bawah ini menunjukkan dua cara untuk mengonversi datetime menjadi detik

  1. Impor modul datetime

    Modul datetime Python menyediakan berbagai fungsi untuk membuat dan memanipulasi tanggal dan waktu. Gunakan pernyataan 

    Datetime to Seconds since epoch: 1540166400.0
    0 untuk mengimpor kelas 
    Datetime to Seconds since epoch: 1540166400.0
    1 dari modul datetime

  2. Kurangi input datetime dari waktu Epoch

    Untuk mengonversi datetime menjadi detik, kurangi input datetime dari waktu Epoch. Untuk Python, waktu epoch dimulai dari 00. 00. 00 UTC pada 1 Januari 1970. Pengurangan memberi Anda objek timedelta. Gunakan metode

    Datetime to Seconds since epoch: 1540166400.0
    _2 dari objek timedelta untuk mendapatkan jumlah detik sejak Zaman

  3. Gunakan metode timestamp()

    Jika versi Python Anda lebih besar dari 3. 3 lalu cara lain adalah dengan menggunakan metode

    Datetime to Seconds since epoch: 1540166400.0
    3 dari kelas datetime untuk mengonversi datetime menjadi detik. Metode ini mengembalikan nilai float yang mewakili sepersekian detik

Contoh. Datetime ke Detik

from datetime import datetime

# input datetime
dt = datetime(2018, 10, 22, 0, 0)
# epoch time
epoch_time = datetime(1970, 1, 1)

# subtract Datetime from epoch datetime
delta = (dt - epoch_time)
print('Datetime to Seconds since epoch:', delta.total_seconds())
_

Keluaran

Datetime to Seconds since epoch: 1540166400.0

Datetime ke detik menggunakan timestamp()

Stempel waktu adalah informasi yang disandikan yang umumnya digunakan di UNIX, yang menunjukkan tanggal dan waktu terjadinya peristiwa tertentu. Informasi ini bisa akurat hingga mikrodetik. Ini adalah stempel waktu POSIX yang sesuai dengan instance datetime

Kode di bawah ini menunjukkan cara mengonversi datetime menjadi detik menggunakan metode

Datetime to Seconds since epoch: 1540166400.0
3. Metode ini hanya akan berguna jika Anda memerlukan jumlah detik dari zaman (1970-01-01 UTC). Ini mengembalikan sejumlah detik yang telah berlalu sejak zaman sebagai nilai float yang mewakili sepersekian detik

Contoh

from datetime import datetime

# input datetime
dt = datetime(2018, 10, 22, 0, 0)
print('Seconds since epoch:', dt.timestamp())

Keluaran

Seconds since epoch: 1540146600.0
_

Catatan

Perhatikan bahwa zona waktu yang berbeda berdampak pada hasil. Oleh karena itu seseorang harus mempertimbangkan untuk mengonversi datetime ke UTC sebelum mengubahnya menjadi detik

Untuk mendapatkan hasil yang akurat, Anda harus menggunakan waktu waktu UTC. Jika datetime Anda belum dalam UTC, Anda harus mengonversinya sebelum menggunakannya atau melampirkan kelas tzinfo dengan offset zona waktu yang tepat. Tambahkan

Datetime to Seconds since epoch: 1540166400.0
5 jika menggunakan Python 2 atau
Datetime to Seconds since epoch: 1540166400.0
6 jika menggunakan Python 3

Jangan gunakan strptime untuk mengonversi datetime menjadi detik menggunakan atribut

Datetime to Seconds since epoch: 1540166400.0
7 karena Python tidak mendukung atribut
Datetime to Seconds since epoch: 1540166400.0
7. Jika Anda menggunakannya, Python akan menggunakan strftime sistem Anda, yang menggunakan zona waktu lokal Anda, dan Anda akan mendapatkan hasil yang tidak akurat. Lihat

Datetime ke detik menggunakan modul kalender

Modul kalender menyediakan metode yang mengembalikan nilai stempel waktu Unix yang sesuai, dengan asumsi zaman 1970 dan pengkodean POSIX

  • impor modul clenadar
  • Gunakan
    Datetime to Seconds since epoch: 1540166400.0
    _9 untuk mendapatkan tuple waktu dari datetime
  • Selanjutnya, berikan time tuple ke metode
    from datetime import datetime
    
    # input datetime
    dt = datetime(2018, 10, 22, 0, 0)
    print('Seconds since epoch:', dt.timestamp())
    
    0 untuk mengonversi datetime menjadi detik

Contoh

import calendar
from datetime import datetime

# input datetime
dt = datetime(2018, 10, 22, 0, 0)

print('Datetime to seconds:', calendar.timegm(dt.timetuple()))

Keluaran

Datetime to seconds: 1540166400

Catatan

  • Metode ini menghapus sepersekian detik
  • Pendekatan kalender tidak memiliki cara untuk menentukan zona waktu. Jika input datetime mengetahui instance dan menggunakan zona waktu yang berbeda dari zona waktu sistem, hasilnya tidak akan benar (zona waktu hilang dalam panggilan
    from datetime import datetime
    
    # input datetime
    dt = datetime(2018, 10, 22, 0, 0)
    print('Seconds since epoch:', dt.timestamp())
    
    1). Untuk mendapatkan jawaban yang benar untuk datetime 'sadar', Anda dapat menggunakan
    from datetime import datetime
    
    # input datetime
    dt = datetime(2018, 10, 22, 0, 0)
    print('Seconds since epoch:', dt.timestamp())
    
    2

Detik/Epoch ke Datetime

Jika Anda ingin mengonversi jumlah detik sejak zaman menjadi objek datetime, gunakan metode

from datetime import datetime

# input datetime
dt = datetime(2018, 10, 22, 0, 0)
print('Seconds since epoch:', dt.timestamp())
3 dari kelas datetime

Contoh

from datetime import datetime

# seconds
ts = 1540146600.0

# convert seconds to datetime
dt = datetime.fromtimestamp(ts)
print("datetime is:", dt)

Keluaran

datetime is: 2018-10-22 00:00:00

Mengonversi waktu Epoch dengan milidetik menjadi waktu tanggal

Jika Anda ingin mengonversi milidetik menjadi objek datetime, gunakan metode strptime() dari kelas datetime. Gunakan kode format

from datetime import datetime

# input datetime
dt = datetime(2018, 10, 22, 0, 0)
print('Seconds since epoch:', dt.timestamp())
_4 untuk parsing

Bagaimana Anda menghasilkan waktu Epoch dengan Python?

Dapatkan Waktu Saat Ini dengan Python . Use the time. time() berfungsi untuk mendapatkan waktu saat ini dalam hitungan detik sejak zaman sebagai angka floating-point. Metode ini mengembalikan stempel waktu saat ini dalam angka floating-point yang mewakili jumlah detik sejak 1 Jan 1970, 00. 00. 00. Ini mengembalikan waktu saat ini dalam hitungan detik.

Bagaimana Anda mengubah waktu normal menjadi waktu zaman?

Konversi dari tanggal yang dapat dibaca manusia ke zaman . teks. SimpleDateFormat("MM/dd/yyyy HH. mm. ss"). mengurai("01/01/1970 01. 00. 00"). getTime() / 1000; . long epoch = new java.text.SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse("01/01/1970 01:00:00").getTime() / 1000; Timestamp in seconds, remove '/1000' for milliseconds. tanggal +%s -d"1 Jan 1980 00. 00. 01" Ganti '-d' dengan '-ud' untuk memasukkan waktu GMT/UTC.

Bagaimana cara mengonversi datetime ke Epoch dalam hitungan detik dengan Python?

Untuk mengonversi datetime menjadi detik, kurangi input datetime dari epoch time . Untuk Python, waktu epoch dimulai dari 00. 00. 00 UTC pada 1 Januari 1970. Pengurangan memberi Anda objek timedelta. Gunakan metode total_seconds() dari objek timedelta untuk mendapatkan jumlah detik sejak Zaman.

Bagaimana cara mengubah stempel waktu ke waktu UTC dengan Python?

Mendapatkan stempel waktu UTC . tanggal Waktu. now() untuk mendapatkan tanggal dan waktu saat ini. Lalu gunakan kelas tzinfo untuk mengonversi datetime kita ke UTC .