Hướng dẫn how do i convert utc timestamp to datetime in python? - làm cách nào để chuyển đổi dấu thời gian utc thành datetime trong python?

Trong bài viết này, bạn sẽ học cách chuyển đổi dấu thời gian thành đối tượng DateTime và đối tượng DateTime thành dấu thời gian (với sự trợ giúp của các ví dụ).

Nó khá phổ biến để lưu trữ ngày và giờ làm dấu thời gian trong cơ sở dữ liệu. Dấu thời gian UNIX là số giây giữa một ngày cụ thể đến ngày 1 tháng 1 năm 1970 tại UTC.


Ví dụ 1: Python Dấu thời gian cho DateTime

from datetime import datetime

timestamp = 1545730073
dt_object = datetime.fromtimestamp(timestamp)

print("dt_object =", dt_object)
print("type(dt_object) =", type(dt_object))

Khi bạn chạy chương trình, đầu ra sẽ là:

dt_object = 2018-12-25 09:27:53
type(dt_object) = 

Ở đây, chúng tôi đã nhập lớp

dt_object = 2018-12-25 09:27:53
type(dt_object) = 
7 từ mô -đun DateTime. Sau đó, chúng tôi đã sử dụng
dt_object = 2018-12-25 09:27:53
type(dt_object) = 
8 ClassMethod trả về ngày và giờ địa phương (đối tượng DateTime). Đối tượng này được lưu trữ trong biến DT_Object.

Lưu ý: Bạn có thể dễ dàng tạo một chuỗi biểu diễn ngày và thời gian từ một đối tượng

dt_object = 2018-12-25 09:27:53
type(dt_object) = 
7 bằng phương thức strftime (). You can easily create a string representing date and time from a
dt_object = 2018-12-25 09:27:53
type(dt_object) = 
7 object using strftime() method.


Ví dụ 2: Python DateTime to Timestamp

Bạn có thể nhận dấu thời gian từ một đối tượng DateTime bằng phương thức

from datetime import datetime

# current date and time
now = datetime.now()

timestamp = datetime.timestamp(now)
print("timestamp =", timestamp)
0.

from datetime import datetime

# current date and time
now = datetime.now()

timestamp = datetime.timestamp(now)
print("timestamp =", timestamp)

Có hai phần:

  1. Chuyển đổi dấu thời gian UNIX ("giây kể từ kỷ nguyên") thành thời gian địa phương
  2. Hiển thị thời gian cục bộ trong định dạng mong muốn.

Một cách di động để có được thời gian địa phương hoạt động ngay cả khi múi giờ địa phương có độ lệch UTC khác trong quá khứ và Python không có quyền truy cập vào cơ sở dữ liệu TZ là sử dụng thời gian

from datetime import datetime

# current date and time
now = datetime.now()

timestamp = datetime.timestamp(now)
print("timestamp =", timestamp)
1:

#!/usr/bin/env python
from datetime import datetime
import tzlocal  # $ pip install tzlocal

unix_timestamp = float("1284101485")
local_timezone = tzlocal.get_localzone() # get pytz timezone
local_time = datetime.fromtimestamp(unix_timestamp, local_timezone)

Để hiển thị nó, bạn có thể sử dụng bất kỳ định dạng thời gian nào được hệ thống của bạn hỗ trợ, ví dụ:

print(local_time.strftime("%Y-%m-%d %H:%M:%S.%f%z (%Z)"))
print(local_time.strftime("%B %d %Y"))  # print date in your format

Nếu bạn không cần thời gian địa phương, thay vào đó là thời gian UTC dễ đọc: thay vào đó:

utc_time = datetime.utcfromtimestamp(unix_timestamp)
print(utc_time.strftime("%Y-%m-%d %H:%M:%S.%f+00:00 (UTC)"))

Nếu bạn không quan tâm đến các vấn đề về thời gian có thể ảnh hưởng đến ngày được trả lại hoặc nếu Python có quyền truy cập vào cơ sở dữ liệu TZ trên hệ thống của bạn:

local_time = datetime.fromtimestamp(unix_timestamp)
print(local_time.strftime("%Y-%m-%d %H:%M:%S.%f"))

Trên Python 3, bạn có thể nhận được một DateTime nhận biết thời gian chỉ bằng cách sử dụng stdlib (phần bù UTC có thể sai nếu Python không có quyền truy cập vào cơ sở dữ liệu TZ trên hệ thống của bạn, ví dụ: trên Windows):

#!/usr/bin/env python3
from datetime import datetime, timezone

utc_time = datetime.fromtimestamp(unix_timestamp, timezone.utc)
local_time = utc_time.astimezone()
print(local_time.strftime("%Y-%m-%d %H:%M:%S.%f%z (%Z)"))

Các chức năng từ mô -đun

from datetime import datetime

# current date and time
now = datetime.now()

timestamp = datetime.timestamp(now)
print("timestamp =", timestamp)
2 là các trình bao bọc mỏng xung quanh API C tương ứng và do đó chúng có thể ít di động hơn các phương thức
dt_object = 2018-12-25 09:27:53
type(dt_object) = 
7 tương ứng nếu không bạn cũng có thể sử dụng chúng:

#!/usr/bin/env python
import time

unix_timestamp  = int("1284101485")
utc_time = time.gmtime(unix_timestamp)
local_time = time.localtime(unix_timestamp)
print(time.strftime("%Y-%m-%d %H:%M:%S", local_time)) 
print(time.strftime("%Y-%m-%d %H:%M:%S+00:00 (UTC)", utc_time))  

Bài viết này sẽ thảo luận về cách chuyển đổi thời gian UTC (trong chuỗi hoặc dưới dạng đối tượng DateTime) sang thời gian địa phương trong Python.

Giả sử bạn đang ở trong một múi giờ không phải là UTC. Nhưng bạn có một DateTime trong UTC Timezone và bạn muốn chuyển đổi nó thành timezone địa phương của bạn. Ví dụ: bạn có dấu thời gian UTC như một chuỗi,

10/21/2021 8:18:19

Bây giờ bạn muốn chuyển đổi nó thành timezone địa phương của bạn. Nếu bạn đang ở châu Á/calcutta timezone, thì kết quả sẽ giống như,

dt_object = 2018-12-25 09:27:53
type(dt_object) = 
0

Tất cả các giải pháp chúng tôi sẽ thảo luận để chuyển đổi UTC sang thời gian địa phương, sẽ áp dụng cho tất cả các múi giờ. Điều đó có nghĩa là, bất kể thời gian địa phương của bạn là gì, bạn có thể dễ dàng chuyển đổi DateTime UTC sang thời gian địa phương của bạn bằng các giải pháp này. Hãy bắt đầu nhìn vào chúng từng cái một.

Chúng ta có thể sử dụng mô -đun DateTime cho việc này. Các bước thực hiện như sau,

Quảng cáo

  • Tạo một đối tượng DateTime từ chuỗi thời gian UTC.
  • Đối tượng DateTime này sẽ không có múi giờ được liên kết với nó. Do đó, gán thời gian UTC cho đối tượng DateTime này bằng hàm thay thế (tzinfo = pytz.utc).
  • Chuyển đổi múi giờ của đối tượng DateTime thành múi giờ cục bộ bằng cách gọi hàm astimezone () trên đối tượng DateTime.

Hàm astimezone () chấp nhận một thể hiện múi giờ tz làm đối số. Nó trả về một thể hiện DateTime mới theo tham số múi giờ được chỉ định TZ, tức là nó chuyển đổi thời gian trong cuộc gọi DateTime thành múi giờ được chỉ định và trả về một đối tượng DateTime mới chứa nó.

Hãy cùng xem một ví dụ hoàn chỉnh để chuyển đổi chuỗi DateTime UTC sang thời gian cục bộ, tức là.

dt_object = 2018-12-25 09:27:53
type(dt_object) = 
1

Output:

dt_object = 2018-12-25 09:27:53
type(dt_object) = 
2

Chuyển đổi đối tượng DateTime UTC từ DateTime cục bộ

Thay vì chuỗi, nếu bạn đã có đối tượng DateTime với thời gian UTC, chúng ta có thể chuyển đổi nó trực tiếp thành đối tượng DateTime bằng múi giờ cục bộ bằng astimezone (). Ví dụ,

dt_object = 2018-12-25 09:27:53
type(dt_object) = 
3

Output:

dt_object = 2018-12-25 09:27:53
type(dt_object) = 
4

Chuyển đổi DateTime UTC hiện tại thành DateTime cục bộ trong Python

Giả sử chúng ta có một đối tượng DateTime chứa thời gian hiện tại trong thời gian UTC và có thông tin múi giờ. Sử dụng astimezone (), chúng ta có thể chuyển đổi nó thành múi giờ địa phương và nhận thời gian địa phương hiện tại. Vì vậy, chúng tôi sẽ chuyển thời gian cục bộ như một đối số cho hàm astimezone (). Ví dụ,

dt_object = 2018-12-25 09:27:53
type(dt_object) = 
5

Output:

dt_object = 2018-12-25 09:27:53
type(dt_object) = 
6

Bản tóm tắt

Chúng tôi đã học được cách chuyển đổi thời gian UTC sang timezone địa phương ở Python.

Làm cách nào để chuyển đổi dấu thời gian UTC sang giờ địa phương ở Python?

Ở đây lần đầu tiên nhập DateIme, TZUTC và TZLOCAL PYTHON MODULE. Sau đó sử dụng DateTime. Bây giờ (tzutc ()), tôi đang nhận được ngày và giờ UTC hiện tại. Để chuyển đổi thời gian UTC sang thời gian cục bộ, tôi đang sử dụng toán tử DOT theo thời gian UTC và chuyển phương thức tzlocal () bên trong hàm astimezone ().using the dot operator on UTC time and passing the tzlocal() method inside the astimezone() function.

Làm cách nào để chuyển đổi dấu thời gian thành một ngày trong Python?

Bạn có thể chỉ cần sử dụng chức năng FromTimestamp từ mô -đun DateTime để nhận ngày từ dấu thời gian UNIX. Hàm này lấy dấu thời gian làm đầu vào và trả về đối tượng DateTime tương ứng cho dấu thời gian.use the fromtimestamp function from the DateTime module to get a date from a UNIX timestamp. This function takes the timestamp as input and returns the corresponding DateTime object to timestamp.

Làm cách nào để định dạng UTC DateTime trong Python?

Sử dụng mô -đun PYTZ, đi kèm với danh sách đầy đủ các múi giờ + UTC.Tìm hiểu thời gian cục bộ là gì, xây dựng một đối tượng múi giờ từ nó và thao tác và gắn nó vào DateTime ngây thơ.Cuối cùng, sử dụng phương thức DateTime.astimezone () để chuyển đổi DateTime thành UTC.use datetime. astimezone() method to convert the datetime to UTC.

Làm cách nào để chuyển đổi dấu thời gian cho đến nay?

Hãy xem ví dụ đơn giản để chuyển đổi dấu thời gian cho đến nay trong java ...
nhập java.sql.timestamp ;.
nhập java.util.date ;.
lớp công khai TimestampodateExample1 {.
công khai void void chính (chuỗi args []) {.
Dấu thời gian TS = Dấu thời gian mới (System.CurrentTimeMillis ()) ;.
Ngày ngày = ngày mới (ts.getTime ()) ;.
System.out.println(date);.