Dấu thời gian unix python

Gần đây mình đang làm nhiều việc với kiểu dữ liệu Datetime trong Python. Vấn đề mình gặp phải là xử lý nhiều loại định dạng thời gian khác nhau, chuyển hóa thành định dạng Ngày giờ, chuẩn hóa thời gian lưu trữ và lưu vào cơ sở dữ liệu. Và sau đây, mình sẽ viết bài chia sẻ về cách mình xử lý kiểu dữ liệu Datetime trong Python. Trong bài mình sẽ sử dụng Python 3 để xử lý kiểu dữ liệu Datetime

Mẹo 1. Khoảng thời gian sử dụng chuẩn hóa

Đầu tiên, cũng là quan trọng nhất, tiêu chuẩn hóa múi giờ sử dụng để chuyển đổi các kiểu thời gian. Mình lựa chọn sử dụng múi giờ chuẩn UTC để chuẩn hóa thời gian cho cả hệ thống cũng như làm múi giờ chuẩn để xử lý các loại định dạng thời gian khác nhau

Tham khảo thêm về thời gian UTC tại

Xử lý bằng hàm parse

import datetime
import pytz
from dateutil.parser import parse

# Dạng string time
date_string = '2019-03-20T03:41:16Z'

# Dạng datetime format
date_time_python = parse[date_string]

Xử lý bằng strptime

import datetime
import pytz
from dateutil.parser import parse

# Dạng string time
date_string = '2019-03-21 03:41:16'

# Strptime
format = '%Y-%m-%d %H:%M:%S'
date_time_python = datetime.datetime.strptime[date_string, format]

Lưu ý

  • Rất nhiều định dạng thời gian khác nhau nên để có thể chuyển từ chuỗi thành Datetime parse chỉ có thể xử lý một số định dạng tiêu chuẩn, nếu định dạng tiêu chuẩn khác phải hiểu cấu trúc chuỗi thời gian để sử dụng hàm strp để cắt chuỗi tạo Datetime
  • Nếu kiểu dữ liệu Datetime không xác định được múi giờ thì được gọi là
    import datetime
    import pytz
    from dateutil.parser import parse
    
    # Dạng string time
    date_string = '2019-03-21 03:41:16'
    
    # Strptime
    format = '%Y-%m-%d %H:%M:%S'
    date_time_python = datetime.datetime.strptime[date_string, format]
    
    0

Dấu thời gian là kiểu thời gian thông tin ứng dụng của hệ thống thông tin Unix, tìm hiểu thêm tại

import datetime

# Dạng datetime
date_time_now = datetime.datetime.now[]

# Dạng timestamp
timestamp_now = date_time_now.timestamp[]

Kiểm tra loại múi giờ

import datetime
import pytz

# Dạng native date
date_time_now = datetime.datetime.now[]
print[date_time_now.tzname[]]

# Dạng utc
UTC = pytz.utc
date_time_utc_now = UTC.localize[date_time_now]
print[date_time_utc_now.tzname[]]

Lưu ý. không sử dụng hàm thay thế, hàm thay thế sẽ chỉ thay đổi tzinfo không quy định thời gian từ múi giờ này sang múi giờ khác

Nếu bạn đang ở múi giờ Việt Nam [GMT+7], tức nếu hiện tại là 8 giờ sáng [giờ Việt Nam] thì quy ra giờ UTC tức 1 giờ sáng [giờ UTC]. Vì vậy nếu Datetime đang ở múi giờ UTC thì ta phải convert nó sáng giờ Việt Nam

import datetime
import pytz

# Dạng native date
date_time_now = datetime.datetime.now[]
print[date_time_now.tzname[]]

# Dạng utc
UTC = pytz.utc
date_time_utc_now = UTC.localize[date_time_now]
print[date_time_utc_now.tzname[]]

# Dạng 'Asia/Ho_Chi_Minh'

VN_TZ = pytz.timezone['Asia/Ho_Chi_Minh']
date_time_vntz_now = date_time_utc_now.astimezone[VN_TZ]
print[date_time_vntz_now.tzname[]]

import datetime

date_time_now = datetime.datetime.now[]
timestamp_now = date_time_now.timestamp[]

# Convert timestamp thành dạng Datetime
timestamp_to_datetime = datetime.datetime.fromtimestamp[timestamp_now]

ISO 8601 là tiêu chuẩn quốc tế, được đưa ra bởi Tổ chức tiêu chuẩn hóa quốc tế [ISO] lần đầu tiên vào năm 1988, mô tả quy định viết ngày tháng và thời gian theo cách đơn giản nhất mà máy tính có thể hiểu được. . Còn đối với Python ISO 8601 Datetime is string format time information information

Dấu thời gian Unix là một số nguyên được ký duy nhất tăng lên một giây mỗi giây, cho phép máy tính lưu trữ và thao tác với các hệ thống ngày tháng thông thường. Phần mềm này sau đó được dịch sang định dạng mà con người có thể đọc được. Dấu thời gian Unix là số giây được tính kể từ ngày 1 tháng 1 năm 1970. Trong bài viết này, chúng ta sẽ xem cách chuyển đổi DateTime sang dấu thời gian Unix

DateTime thành dấu thời gian Unix

Để chuyển đổi Python DateTime thành dấu thời gian Unix, chúng tôi đã nhập một mô-đun có tên là datetime và time trong ví dụ này và biến date_time đã được khai báo và gán datetime. thời gian/ngày [2021, 7, 26, 21, 20]. Năm là 2021, tháng là 7, ngày là 26, giờ là 21 và phút là 20

Mã số

Python3




# importing datetime module

import datetime

import

1628497724509.293
1

 

1628497724509.293
2

1628497724509.293
3_______7_______4
1628497724509.293
5
1628497724509.293
6
1628497724509.293
7
1628497724509.293
8
1628497724509.293
7
1628497783
0
1628497724509.293
7
1628497783
2
1628497724509.293
7
1628497783
4
1628497783
5

 

1628497783
6

1628497783
7
1628497783
8
1628497783
9
1628497823000.0
0

 

1628497823000.0
1

1628497783
7
1628497783
8
1628497823000.0
4
1628497724509.293
7

1628497823000.0
6
1628497823000.0
7

đầu ra

date_time => 2021-07-26 21:20:00
unix_timestamp =>  1627314600.0

Giải trình

Các lớp thao tác ngày và giờ được cung cấp bởi mô-đun datetime. Hàm nghịch đảo của giờ địa phương là mktime[]. Nó chấp nhận một thời gian cấu trúc hoặc một bộ 9 đầy đủ làm đối số và trả về một số dấu phẩy động để tương thích với thời gian []. Nó cũng được sử dụng để chuyển đổi ngày giờ thành dấu thời gian Unix

Phương thức timetuple[] của datetime. đối tượng ngày trả về một đối tượng thời gian. thời gian cấu trúc. Đối tượng thời gian cấu trúc là một bộ dữ liệu được đặt tên có thể được truy xuất bằng chỉ mục hoặc theo tên. Các trường năm, tháng và ngày của bộ dữ liệu được đặt tên được trả về bởi hàm timetuple[] sẽ được đặt theo đối tượng ngày, trong khi các trường giờ, phút và giây sẽ được đặt thành 0

DateTime thành dấu thời gian Unix với 13 chữ số

Để có được thời gian hiện tại, hãy sử dụng datetime. Hiện nay[]. Hàm timetuple[] của lớp datetime trả về các thuộc tính của datetime dưới dạng một bộ có tên. Dấu thời gian có 13 chữ số phải được nhân với 1000

Mã số

Python3




import

1628497724509.293
1

import datetime

 

Unix_Time:  1628188200.0
2______7_______4
Unix_Time:  1628188200.0
4

Unix_Time:  1628188200.0
5
1628497724509.293
4
Unix_Time:  1628188200.0
7
Unix_Time:  1628188200.0
8
Unix_Time:  1628188200.0
9

1628497783
7
1628209448.0
1

đầu ra

1628497724509.293

DateTime đến dấu thời gian Unix trong múi giờ UTC

Mô-đun lịch cung cấp các chức năng liên quan đến lịch hữu ích. utc. hàm now trả về thời gian hiện tại theo múi giờ UTC. Trong mô-đun thời gian, hàm timegm trả về dấu thời gian Unix. Hàm timetuple[] của lớp datetime trả về các thuộc tính của datetime dưới dạng một bộ có tên. Để lấy dấu thời gian Unix, hãy sử dụng print[UTC]

Mã số

Python3




import

1628209448.0
3

import datetime

 

1628209448.0
6
1628497724509.293
4
1628209448.0
8

1628209448.0
9
1628497724509.293
4
Unix_Time => 1627334400
Date & Time => 2021-07-27 02:50:00
1

1628497783
7
Unix_Time => 1627334400
Date & Time => 2021-07-27 02:50:00
3

đầu ra

1628497783

DateTime thành dấu thời gian Unix mili giây

ngày giờ. Hàm now[] được sử dụng để lấy thời gian hiện tại. Phương thức mktime là một phương thức thời gian là hàm nghịch đảo của giờ địa phương; . Hàm timetuple[] của lớp datetime trả về các thuộc tính của datetime dưới dạng một bộ có tên. Để có được thời gian tính bằng mili giây, hãy nhân nó với 1000

Mã số

Python3




import datetime

import

1628497724509.293
1

 

Unix_Time => 1627334400
Date & Time => 2021-07-27 02:50:00
8
1628497724509.293
4
Unix_Time:  1628188200.0
4

1628497783
7# importing datetime module2
Unix_Time:  1628188200.0
8
Unix_Time:  1628188200.0
9
1628497783
5

đầu ra

1628497823000.0

Ngày giờ. ngày thành dấu thời gian Unix

thời gian. date[] là một hàm chỉ chấp nhận ngày tháng. Trong trường hợp này, 2021 là năm, 8 là tháng và 6 là ngày. mktime[] là một phương thức thời gian là hàm nghịch đảo của giờ địa phương;

Mã số

Python3




import datetime

import

1628497724509.293
1

 

import0

1628497724509.293
4 import2
1628497724509.293
6
1628497724509.293
7import5
1628497724509.293
7import7
1628497783
5

1628497783
7
1628497783
8datetime1
1628497724509.293
7

1628497823000.0
6datetime4

đầu ra

Unix_Time:  1628188200.0

Chuỗi DateTime thành dấu thời gian Unix

Ngày và giờ được cung cấp ở định dạng chuỗi trong trường hợp này. Ở đây, 8 biểu thị tháng, 6 biểu thị ngày, 2021 biểu thị năm, 05 biểu thị giờ, 54 biểu thị phút và 8 biểu thị giây. strptime[] là một phương thức mô-đun datetime được sử dụng để chuyển đổi các chuỗi thành các đối tượng datetime và time. Hàm timestamp[] trả về thời gian hiện tại ở vị trí hiện tại

Mã số

Python3




import datetime

 

datetime7

1628497724509.293
4 datetime9

1628497724509.293
00
1628497724509.293
4
1628497724509.293
02

1628497724509.293
03_______7_______04
1628497783
5

1628497724509.293
06
1628497724509.293
4
1628497724509.293
08

1628497783
7
1628497724509.293
10

đầu ra

1628209448.0

Dấu thời gian Unix thành Python DateTime

Mô-đun DateTime trong Python được sử dụng để xử lý các vấn đề liên quan đến ngày và giờ trong Python. Phương thức fromtimestamp[] là một trong những hàm có trong mô-đun này. Hàm fromtimestamp[] của lớp ngày tính toán và trả về ngày tương ứng với dấu thời gian đã chỉ định. Phạm vi dấu thời gian được phép kéo dài từ 1970 đến 2038. Nếu có bất kỳ giây nhuận nào trong dấu thời gian, hàm fromtimestamp[] sẽ bỏ qua chúng

Để bắt đầu, chúng tôi nhập lớp datetime từ mô-đun datetime. Đối tượng giá trị UNIX sau đó được lưu trữ trong một biến. Sau đó, chúng tôi sử dụng datetime. phương thức fromtimestamp[] để truy xuất thời gian và ngày tháng.  

Hàm strftime[] là một hàm khác trong mô-đun datetime. Hàm này hỗ trợ trả lại DateTime ở một định dạng cụ thể. Hàm này được sử dụng để chuyển đổi các đối tượng ngày và giờ thành biểu diễn chuỗi. Các mã định dạng trong đoạn mã trên là %d, %m, %Y, %H, %M và %S, tương ứng cho biết ngày, tháng, năm, giờ, phút và giây

Chủ Đề