Chuyển đổi ngày giờ thành giờ Python

Trong bài viết này, chúng ta sẽ thảo luận về các cách khác nhau để thêm giờ vào dấu thời gian nhất định trong python bằng cách sử dụng timedelta, pandas hoặc relativedelta

Giả sử bạn có dấu thời gian ở dạng chuỗi và bạn muốn thêm N giờ vào đó, trong đó N có thể là bất kỳ số nào. Nhưng bạn muốn dấu thời gian cuối cùng sau khi thêm N giờ, ở định dạng chuỗi đã cho. Hãy xem làm thế nào để làm điều đó,

Thêm giờ vào dấu thời gian trong Python bằng timedelta

Python cung cấp một mô-đun datetime để thao tác ngày và giờ. Nó bao gồm các lớp sau,

  • ngày giờ. ngày. Một đối tượng của lớp ngày chỉ định một ngày sử dụng năm, tháng và ngày
  • ngày giờ. thời gian. Một đối tượng của lớp thời gian chỉ định dấu thời gian sử dụng giờ, phút, giây, micro giây và tzinfo
  • ngày giờ. ngày giờ. Một đối tượng của datetime là sự kết hợp của ngày và giờ
  • ngày giờ. múi giờ. Khoảng thời gian, đại diện cho sự khác biệt giữa hai ngày hoặc thời gian hoặc ngày giờ
  • ngày giờ. tzinfo. Nó chứa thông tin múi giờ

Để thêm giờ trong một dấu thời gian nhất định, chúng ta sẽ sử dụng các lớp datetime và timedelta của mô-đun datetime

Các bước để thêm N giờ vào datetime như sau,

quảng cáo

  • Bước 1. Nếu dấu thời gian đã cho ở định dạng chuỗi, thì chúng ta cần chuyển đổi nó thành đối tượng datetime. Để làm được điều đó, chúng ta có thể sử dụng datetime. hàm strptime[]. Trong khi đó, nếu dấu thời gian đã cho đã là một đối tượng ngày giờ, thì bạn có thể bỏ qua bước này
  • Bước 2. Tạo một đối tượng của timedelta, để biểu thị khoảng thời gian N giờ. Đối với điều đó, hãy chuyển đối số giờ với giá trị N trong hàm tạo timedelta
  • Bước 3. Thêm đối tượng timedelta vào đối tượng datetime. Nó sẽ cung cấp cho chúng ta một đối tượng datetime mới, trỏ đến một dấu thời gian mới i. e. N giờ sau dấu thời gian đã cho
  • Bước 4. Nếu bạn muốn dấu thời gian cuối cùng ở định dạng chuỗi, thì hãy chuyển đổi đối tượng datetime thành chuỗi bằng cách sử dụng strftime[]. Bạn có thể chuyển chuỗi định dạng làm đối số và nó sẽ chuyển đổi đối tượng ngày giờ thành một chuỗi có định dạng đã chỉ định

Hãy hiểu với một ví dụ,

Thêm 2 giờ vào dấu thời gian trong python

from datetime import datetime
from datetime import timedelta

# Given timestamp in string
time_str = '24/7/2021 11:13:08.230010'
date_format_str = '%d/%m/%Y %H:%M:%S.%f'

# create datetime object from timestamp string
given_time = datetime.strptime[time_str, date_format_str]

print['Given Time: ', given_time]

n = 2
# Add 2 hours to datetime object
final_time = given_time + timedelta[hours=n]

print['Final Time [2 hours after given time ]: ', final_time]

# Convert datetime object to string in specific format 
final_time_str = final_time.strftime['%d/%m/%Y %H:%M:%S.%f']
print['Final Time as string object: ', final_time_str]

đầu ra

Given Time:  2021-07-24 11:13:08.230010
Final Time [2 hours after given time ]:  2021-07-24 13:13:08.230010
Final Time as string object:  24/07/2021 13:13:08.230010

Chúng tôi đã thêm 2 giờ vào dấu thời gian '24/7/2021 11. 13. 08. 230010′ để thành ’24/07/2021 13. 13. 08. 230010′

Vì chúng tôi đã thêm một timedelta [có thời lượng 2 giờ] vào đối tượng datetime, nên nó trả về một đối tượng datetime mới trỏ đến dấu thời gian mới. Sau đó, chúng tôi đã chuyển đổi đối tượng datetime sang định dạng chuỗi được yêu cầu bằng cách sử dụng datetime. strftime[]. Nếu chuỗi dấu thời gian của bạn có định dạng khác, thì bạn có thể thay đổi định dạng theo đó trong khi sử dụng strptime[] & strftime[]

Thêm giờ vào dấu thời gian đã cho trong Python bằng Pandas

Pandas cung cấp một lớp DateOffset, để lưu trữ thông tin về thời lượng hoặc khoảng thời gian. Nó chủ yếu được sử dụng để tăng hoặc giảm dấu thời gian. Nó có thể được sử dụng với mô-đun datetime để thêm N giờ vào một datetime. Hãy hiểu với một ví dụ,

Thêm 3 giờ vào ngày giờ trong python

from datetime import datetime
import pandas as pd

# Given timestamp in string
time_str = '24/7/2021 11:13:08.230010'
date_format_str = '%d/%m/%Y %H:%M:%S.%f'

# create datetime object from timestamp string
given_time = datetime.strptime[time_str, date_format_str]

print['Given Time: ', given_time]

n = 3
# Add 3 hours to datetime object
final_time = given_time + pd.DateOffset[hours=n]

print['Final Time [3 hours after given time ]: ', final_time]

# Convert datetime object to string in specific format 
final_time_str = final_time.strftime['%d/%m/%Y %H:%M:%S.%f']
print['Final Time as string object: ', final_time_str]

đầu ra

Given Time:  2021-07-24 11:13:08.230010
Final Time [3 hours after given time ]:  2021-07-24 14:13:08.230010 
Final Time as string object:  24/07/2021 14:13:08.230010

Chúng tôi đã tạo một đối tượng DateOffset bằng cách chuyển đối số giờ là 3. Sau đó, chúng tôi đã thêm đối tượng DateOffset này vào đối tượng datetime. Nó trả về một đối tượng ngày giờ mới trỏ đến dấu thời gian mới tôi. e. sau 3 giờ kể từ dấu thời gian nhất định

Thêm giờ vào dấu thời gian đã cho trong python bằng relativedelta

Trong python, mô-đun dateutil cung cấp một lớp relativedelta, đại diện cho một khoảng thời gian. Lớp relativedelta có tất cả các thuộc tính để biểu diễn khoảng thời gian tôi. e. Năm, Tháng, Ngày, Giờ, Phút, Giây và Micro giây

Vì vậy, để thêm giờ vào một dấu thời gian nhất định, chúng ta có thể tạo một đối tượng relativedelta để biểu thị khoảng thời gian tính bằng giờ và sau đó thêm nó vào đối tượng datetime chứa ngày tháng. Hãy hiểu với một ví dụ,

Thêm 30 giờ vào dấu thời gian trong python

from datetime import datetime
from dateutil.relativedelta import relativedelta

# Given timestamp in string
time_str = '24/7/2021 11:13:08.230010'
date_format_str = '%d/%m/%Y %H:%M:%S.%f'

# create datetime object from timestamp string
given_time = datetime.strptime[time_str, date_format_str]

print['Given Time: ', given_time]

n = 30
# Add 3 hours to datetime object
final_time = given_time + relativedelta[hours=n]

print['Final Time [30 hours after given time ]: ', final_time]

# Convert datetime object to string in specific format 
final_time_str = final_time.strftime['%d/%m/%Y %H:%M:%S.%f']
print['Final Time as string object: ', final_time_str]

đầu ra

Given Time:  2021-07-24 11:13:08.230010
Final Time [30 hours after given time ]:  2021-07-25 17:13:08.230010
Final Time as string object:  25/07/2021 17:13:08.230010

Vì dấu thời gian đã cho ở dạng chuỗi, vì vậy trước tiên chúng tôi đã chuyển đổi nó thành đối tượng datetime. Sau đó, chúng tôi đã tạo một đối tượng relativedelta đại diện cho 30 giờ bằng cách chuyển đối số giờ là 30. Sau đó thêm nó vào đối tượng datetime. Nó trả về một đối tượng ngày giờ mới trỏ đến dấu thời gian mới tôi. e. ba mươi giờ sau dấu thời gian nhất định

Làm cách nào để chuyển đổi DateTime thành giờ trong Python?

Sử dụng mô-đun Ngày giờ . Nó hiển thị thời gian theo ngày, giờ, phút và giây trôi qua kể từ kỷ nguyên. use the timedelta method under the DateTime module to convert seconds into the preferred format. It displays the time as days, hours, minutes, and seconds elapsed since the epoch.

Làm cách nào để trích xuất ngày và giờ từ DateTime trong Python?

Đối với điều này, chúng tôi sẽ sử dụng phương thức strptime[] và mô-đun Pandas . Phương thức này được sử dụng để tạo một đối tượng DateTime từ một chuỗi. Sau đó, chúng tôi sẽ trích xuất ngày từ đối tượng DateTime bằng cách sử dụng hàm date[] và dt. ngày từ Pandas trong Python.

Chủ Đề