Tip cepat singkat ini lebih berfungsi sebagai pengingat untuk diri saya sendiri. Saya tahu saya tidak berbicara hanya untuk diri saya sendiri ketika saya mengatakan mengubah tanggal dan waktu antara zona waktu bisa sangat memusingkan. Ini adalah ringkasan singkat tentang penanganan konversi zona waktu dengan objek datetime di Python
Artikel singkat ini akan menjelaskan
- Memahami zona waktu sadar dan tidak sadar zona waktu
- Menetapkan di zona waktu
- Mengonversi ke zona waktu lain
Pengantar Sadar Zona Waktu dan Tidak Sadar Zona Waktu
Kami membutuhkan dua pustaka Python untuk ini, waktu tanggal pytz dan Python
from datetime import datetime
_
now = datetime.now()
_- Mengembalikan objek datetime di zona waktu Anda saat ini, tetapi tidak sadar zona waktu
utcnow = datetime.utcnow()
—Mengembalikan objek datetime di zona waktu utc, tapi SURPRISE, ini tidak sadar zona waktu
Jika Anda ingin mengonversi datetime dari satu zona waktu ke zona waktu lain, pertama-tama kita perlu mengetahui zona waktu asli, dan menetapkannya ke objek datetime
Dalam contoh di atas, kita tahu utcnow
adalah UTC, tetapi tidak sadar zona waktu. Kita harus menetapkan zona waktu. Dalam proyek Anda, mungkin Anda telah memutuskan untuk menyimpan semua zona waktu Anda di zona waktu lokal Anda. Umumnya, disarankan untuk selalu menyimpan dalam UTC
Tetapkan Zona Waktu
Mari bawa Pytz
import pytz
Untuk melihat semua zona waktu yang dimiliki Pytz,
for tz in pytz.all_timezones:
print(tz)
Mari tetapkan zona waktu ke ________12______ dari sebelumnya
utcnow = utcnow.replace(tzinfo=pytz.utc)
Di terminal dan ketik utcnow
Anda akan melihat,
datetime.datetime(2020, 5, 13, 8, 39, 29, 220134, tzinfo=)
Jika kita print(utcnow)
2020–05–13 08. 39. 07. 109762+00. 00
Kami sadar akan zona waktu
Konversi Antar Zona Waktu
Sekarang, jika kita ingin mengonversi antar zona waktu, objek from datetime import datetime
0 memiliki fungsi from datetime import datetime
1 yang berguna
Katakanlah saya ingin mengonversi ke zona waktu Brisbane (di Australia) (Saya bekerja dengan klien di Australia, yang menginspirasi artikel ini)
brisbane = utcnow. zona waktu(pytz. zona waktu ("Australia/Brisbane"))
Jika kita mengetik from datetime import datetime
_2 sekarang,
datetime.datetime(2020, 5, 13, 18, 11, 14, 960814, tzinfo=)
Jika kita from datetime import datetime
_3 itu
2020–05–13 18. 11. 14. 960814+10. 00
Ringkasan
- Ketahui zona waktu tempat Anda bekerja
- Tetapkan zona waktu ke objek datetime Anda jika tidak diketahui dengan
from datetime import datetime
4 - Gunakan
from datetime import datetime
_5 untuk mengonversi ke zona waktu lain
Saat-saat bahagia, selamat bertobat
Jika Anda menemukan tutorial ini bermanfaat, saya menggunakan Twitter untuk memposting lebih banyak pelajaran tentang otomatisasi yang akan membantu Anda menghemat waktu dan mengembangkan bisnis Anda. Anda dapat mengikuti saya di sini
import pytzimport datetimenow_utc = datetime.datetime.utcnow()tz = pytz.timezone('Asia/Kuala_Lumpur')now_kl = now_utc.replace(tzinfo=pytz.utc).astimezone(tz)
_atau
now_kl = pytz.utc.localize(now_utc).astimezone(tz)
atau
now_kl = tz.fromutc(now_utc)
import tzlocallocal_tz = tzlocal.get_localzone()
_ Cara termudah dalam tanggal dan waktu Python untuk menangani zona waktu adalah dengan menggunakan modul pytz. Pustaka ini memungkinkan perhitungan zona waktu yang akurat dan lintas platform. pytz membawa basis data Olson tz ke dalam Python. Ini juga memecahkan masalah waktu ambigu di akhir waktu musim panas, yang dapat Anda baca lebih lanjut di Referensi Perpustakaan Python (datetime. tzinfo)
Sebelum Anda menggunakannya, Anda harus menginstalnya menggunakan −
pip install pytz
Metode 1. Menggunakan fungsi astimezone()
Algoritma (Langkah)
Berikut ini adalah Algoritma/langkah yang harus diikuti untuk melakukan tugas yang diinginkan −
Gunakan kata kunci impor, untuk mengimpor datetime (Untuk bekerja dengan tanggal dan waktu, Python memiliki modul yang disebut modul datetime).
Gunakan kata kunci impor, untuk mengimpor zona waktu dari modul pytz
Masukkan format tanggal sebagai string menggunakan fungsi input() dan buat variabel untuk menyimpannya
Dapatkan waktu saat ini menggunakan datetime. fungsi now () (mengembalikan tanggal dan waktu lokal saat ini) dan meneruskan fungsi zona waktu () (mendapatkan zona waktu dari lokasi tertentu) dengan zona waktu sebagai argumen untuk mengatakan 'UTC'
Format DateTime di atas menggunakan strftime() dan cetak
Konversikan waktu di atas ke zona waktu lain menggunakan datetime. fungsi astimezone() (The datetime. fungsi astimezone() digunakan untuk memodifikasi objek kelas datetime dalam modul datetime) dengan meneruskan zona waktu baru sebagai argumennya
Format DateTime yang dikonversi di atas menggunakan strftime() dan cetak
Contoh
Program berikut mengembalikan waktu saat ini setelah dikonversi ke zona waktu lain menggunakan fungsi astimezone()
Keluaran
Saat dijalankan, program di atas akan menghasilkan keluaran berikut -
Current Time in UTC TimeZone: 2022-09-07 04:23:21 UTC+0000
Current Time in Asia/Kolkata TimeZone: 2022-09-07 09:53:21 IST+0530
_Metode 2. Menggunakan datetime. sekarang() fungsi
Algoritma (Langkah)
Berikut ini adalah Algoritma/langkah yang harus diikuti untuk melakukan tugas yang diinginkan −
Gunakan kata kunci impor, untuk mengimpor datetime (Untuk bekerja dengan tanggal dan waktu, Python memiliki modul yang disebut modul datetime).
Gunakan kata kunci impor, untuk mengimpor zona waktu dari modul pytz
Berikan format waktu tanggal sebagai string dan simpan dalam variabel
Dapatkan zona waktu Asia/Kolkata standar menggunakan fungsi zona waktu() (mendapatkan zona waktu dari lokasi tertentu) dari modul pytz dengan meneruskan zona waktu Asia/Kolkata sebagai argumen dan menyimpan hasilnya dalam variabel
Dapatkan zona waktu AS/Timur standar menggunakan fungsi zona waktu() dari modul pytz dengan meneruskan zona waktu AS/Timur sebagai argumen untuknya dan menyimpan hasilnya dalam sebuah variabel
Dapatkan waktu saat ini menggunakan datetime. fungsi now() (mengembalikan tanggal dan waktu lokal saat ini) dan meneruskan zona waktu pertama di atas i. e objek zona waktu asia/kolkata sebagai argumen untuk itu (Di sini ia mengonversi tanggal dan waktu saat ini ke zona waktu asia/kolkata)
Gunakan fungsi strftime() (mengembalikan string yang mewakili objek datetime berdasarkan kode format) untuk memformat objek datetime di atas dan mencetaknya
strftime(format)
Dapatkan waktu saat ini menggunakan datetime. fungsi now() dan meneruskan zona waktu kedua di atas i. e Zona waktu 'AS/Timur' sebagai argumen untuk itu (Di sini ia mengonversi tanggal dan waktu saat ini ke zona waktu 'AS/Timur')
Gunakan fungsi strftime() untuk memformat objek datetime di atas dan mencetaknya
Contoh
Program berikut mengembalikan waktu saat ini setelah dikonversi ke zona waktu lain menggunakan fungsi astimezone()
Keluaran
Saat dijalankan, program di atas akan menghasilkan keluaran berikut -
Original Date & Time: in Asia/Kolkata 2022-09-07 10:00:49 IST+0530
Converted Date & Time: in US/Eastern TimeZone 2022-09-07 00:30:49 EDT-0400
_Kesimpulan
Kami belajar cara mengonversi tanggal dan waktu dengan zona waktu berbeda di Python di artikel ini. Fungsi timedelta() digunakan untuk mendapatkan objek zona waktu. Kami belajar bagaimana menggunakan datetime. now() berfungsi untuk mendapatkan tanggal dan waktu saat ini. Kita juga belajar bagaimana menggunakan fungsi strftime() untuk memformat objek datetime
Bagaimana cara mengonversi zona waktu ke UTC?
Tambahkan selisih waktu lokal ke waktu UTC . Misalnya, jika selisih waktu lokal Anda adalah -5. 00, dan jika waktu UTC ditampilkan sebagai 11. 00, tambahkan -5 ke 11. Pengaturan waktu saat disesuaikan untuk offset adalah 06. 00 (6. 00 A. M. ).
Bagaimana cara mengubah waktu menjadi stempel 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 .
Bagaimana cara mendapatkan waktu UTC dengan Python?
Dapatkan Waktu UTC Saat Ini .
Gunakan waktu tanggal. metode now() untuk mendapatkan waktu saat ini
Gunakan kelas zona waktu dengan instance UTC dengan metode now() untuk mendapatkan waktu UTC saat ini dengan Python
Bagaimana cara mengonversi datetime naif ke UTC dengan Python?
Untuk mengonversi waktu tanggal UTC yang naif, gunakan dt. ganti(tzinfo=pytz. utc) . ")