Bagaimana Anda mengonversi zona waktu ke utc dengan python?

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

  1. Memahami zona waktu sadar dan tidak sadar zona waktu
  2. Menetapkan di zona waktu
  3. 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 datetime0 memiliki fungsi from datetime import datetime1 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
  1. Ketahui zona waktu tempat Anda bekerja
  2. Tetapkan zona waktu ke objek datetime Anda jika tidak diketahui dengan from datetime import datetime4
  3. 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) . ")