Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

แปลงอาร์เรย์ datetime เป็นสตริงด้วยออบเจ็กต์ timezone pytz ใน Python

ในการแปลงอาร์เรย์ของ datetime เป็นอาร์เรย์ของสตริง ใช้เมธอด numpy.datetime_as_string() ใน NumPy เมธอดนี้ส่งคืนอาร์เรย์สตริงที่มีรูปร่างเท่ากับอินพุต พารามิเตอร์แรกคืออาร์เรย์ timestamp UTC ที่ต้องการจัดรูปแบบ

พารามิเตอร์ที่สองคือ timezone ข้อมูลโซนเวลาเพื่อใช้แสดง datetime หากเป็น 'UTC' จะลงท้ายด้วย Z เพื่อบ่งบอกเวลา UTC หากเป็น 'local' จะแปลงเป็นโซนเวลาท้องถิ่นก่อน และต่อท้ายด้วยออฟเซ็ตโซนเวลา หากเป็นออบเจ็กต์ tzinfo จะทำงานเหมือน 'local' แต่ใช้โซนเวลาที่ระบุ

ขั้นตอน

ขั้นแรก ให้นำเข้าไลบรารีที่จำเป็น สำหรับ pytz timezone เราได้นำเข้าไลบรารี pytz:

import numpy as np
import pytz

สร้างอาร์เรย์ datetime ชนิด 'M' ระบุ datetime:

arr = np.arange('2022-02-20T03:25', 6*60, 60, dtype='M8[m]')

แสดงอาร์เรย์:

print("Array...\n", arr)

ตรวจสอบชนิดข้อมูล:

print("\nArray datatype...\n", arr.dtype)

ตรวจสอบมิติของอาร์เรย์:

print("\nArray Dimensions...\n", arr.ndim)

ตรวจสอบรูปร่างของอาร์เรย์:

print("\nOur Array Shape...\n", arr.shape)

ตรวจสอบจำนวนองค์ประกอบ:

print("\nNumber of elements in the Array...\n", arr.size)

แปลงอาร์เรย์ datetime เป็นสตริงด้วย numpy.datetime_as_string():

print("\nResult...\n", np.datetime_as_string(arr, timezone=pytz.timezone('US/Eastern')))

ตัวอย่างโค้ดเต็ม

import numpy as np
import pytz
# สร้างอาร์เรย์ datetime
# ชนิด 'M' ระบุ datetime
arr = np.arange('2022-02-20T03:25', 6*60, 60, dtype='M8[m]')
# แสดงอาร์เรย์
print("Array...\n", arr)
# ตรวจสอบชนิดข้อมูล
print("\nArray datatype...\n", arr.dtype)
# ตรวจสอบมิติของอาร์เรย์
print("\nArray Dimensions...\n", arr.ndim)
# ตรวจสอบรูปร่างของอาร์เรย์
print("\nOur Array Shape...\n", arr.shape)
# ตรวจสอบจำนวนองค์ประกอบของอาร์เรย์
print("\nNumber of elements in the Array...\n", arr.size)
# แปลงอาร์เรย์ datetime เป็นสตริง
# ใช้ numpy.datetime_as_string() ใน Python NumPy
# ส่งคืนอาร์เรย์สตริงรูปร่างเท่าอินพุต
print("\nResult...\n", np.datetime_as_string(arr, timezone=pytz.timezone('US/Eastern')))

ผลลัพธ์

Array... ['2022-02-20T03:25' '2022-02-20T04:25' '2022-02-20T05:25' '2022-02-20T06:25' '2022-02-20T07:25' '2022-02-20T08:25']
Array datatype... datetime64[m]
Array Dimensions... 1
Our Array Shape... (6,)
Number of elements in the Array... 6
Result... ['2022-02-19T22:25-0500' '2022-02-19T23:25-0500' '2022-02-20T00:25-0500' '2022-02-20T01:25-0500' '2022-02-20T02:25-0500' '2022-02-20T03:25-0500']