Hướng dẫn convert datetime to seconds python - chuyển đổi datetime sang giây python

So sánh 4 cách phổ biến nhất để làm điều này, cho độ chính xác:

Phương pháp 1: Tính toán thủ công

from datetime import datetime
total1 = int(datetimeobj.strftime('%S'))
total1 += int(datetimeobj.strftime('%M')) * 60
total1 += int(datetimeobj.strftime('%H')) * 60 * 60
total1 += (int(datetimeobj.strftime('%j')) - 1) * 60 * 60 * 24
total1 += (int(datetimeobj.strftime('%Y')) - 1970) * 60 * 60 * 24 * 365
print ("Method #1: Manual")
print ("Before: %s" % datetimeobj)
print ("Seconds: %s " % total1)
print ("After: %s" % datetime.fromtimestamp(total1))

Output:

Method #1: Manual
Before: 1970-10-01 12:00:00 
Seconds: 23630400 
After: 1970-10-01 16:00:00

Kiểm tra độ chính xác: Thất bại (dịch chuyển múi giờ)

Phương pháp 2: Mô -đun thời gian

import time
from datetime import datetime
total2 = int(time.mktime(datetimeobj.timetuple()))
print ("Method #2: Time Module")
print ("Before: %s" % datetimeobj)
print ("Seconds: %s " % total2)
print ("After: %s" % datetime.fromtimestamp(total2))

Output:

Method #2: Time Module
Before: 1970-10-01 12:00:00 
Seconds: 23616000 
After: 1970-10-01 12:00:00

Kiểm tra độ chính xác: vượt qua

Phương pháp 3: Mô -đun Lịch

import calendar
from datetime import datetime
total3 = calendar.timegm(datetimeobj.timetuple())
print ("Method #3: Calendar Module")
print ("Before: %s" % datetimeobj)
print ("Seconds: %s " % total3)
print ("After: %s" % datetime.fromtimestamp(total3))

Output:

Method #3: Calendar Module
Before: 1970-10-01 12:00:00
Seconds: 23616000
After: 1970-10-01 16:00:00

Kiểm tra độ chính xác: Thất bại (dịch chuyển múi giờ)

Phương pháp 2: Mô -đun thời gian

from datetime import datetime
total4 = datetimeobj.timestamp()
print ("Method #4: datetime timestamp")
print ("Before: %s" % datetimeobj)
print ("Seconds: %s " % total4)
print ("After: %s" % datetime.fromtimestamp(total4))

Output:

Method #2: Time Module
Before: 1970-10-01 12:00:00 
Seconds: 23616000 
After: 1970-10-01 12:00:00

Kiểm tra độ chính xác: vượt qua

Phương pháp 3: Mô -đun Lịch

  • Phương pháp 4: DateTime Datchestamp
  • Sự kết luận
  • Tất cả 4 phương thức chuyển đổi DateTime thành Epoch (tổng số giây)
  • Cả phương thức thủ công và phương pháp mô -đun lịch đều nhận thức được múi giờ.

Trong bài viết này, chúng tôi sẽ học cách chuyển đổi đối tượng DateTime thành giây trong Python. Chúng tôi sẽ sử dụng một số mô-đun tích hợp có sẵn và một số mã tùy chỉnh cũng như thấy chúng hoạt động. Trước tiên chúng ta hãy có một cái nhìn nhanh về những gì là ngày trong Python.

Ngày trong Python

Trong Python, chúng ta có thể làm việc trên các chức năng ngày bằng cách nhập mô-đun tích hợp

Method #1: Manual
Before: 1970-10-01 12:00:00 
Seconds: 23630400 
After: 1970-10-01 16:00:00
1 có sẵn trong Python. Chúng tôi có các đối tượng ngày để làm việc với ngày. Mô -đun DateTime này chứa ngày ở dạng năm, tháng, ngày, giờ, phút, thứ hai và micro giây. Mô -đun DateTime có nhiều phương thức để trả về thông tin về đối tượng ngày. Nó yêu cầu các giá trị ngày, tháng và năm để tính toán hàm. Các hàm ngày và thời gian được so sánh như biểu thức toán học giữa các số khác nhau.

Chuyển đổi đối tượng DateTime thành giây

Trong Python, mô -đun ngày và giờ cung cấp các chức năng khác nhau cho việc thao tác ngày. Chúng ta cũng có thể chuyển đổi một đối tượng

Method #1: Manual
Before: 1970-10-01 12:00:00 
Seconds: 23630400 
After: 1970-10-01 16:00:00
1 thành vài giây bằng cách áp dụng các hoạt động toán học. Đối với chuyển đổi này, mô -đun DateTime cung cấp phương thức
Method #1: Manual
Before: 1970-10-01 12:00:00 
Seconds: 23630400 
After: 1970-10-01 16:00:00
3, phương thức
Method #1: Manual
Before: 1970-10-01 12:00:00 
Seconds: 23630400 
After: 1970-10-01 16:00:00
4 và phương thức
Method #1: Manual
Before: 1970-10-01 12:00:00 
Seconds: 23630400 
After: 1970-10-01 16:00:00
5 để chuyển đổi đối tượng DateTime thành giây. Ngày bắt đầu thường được chỉ định trong UTC, vì vậy để có kết quả thích hợp,
Method #1: Manual
Before: 1970-10-01 12:00:00 
Seconds: 23630400 
After: 1970-10-01 16:00:00
1 bạn ăn vào công thức này cũng nên ở UTC. Nếu
Method #1: Manual
Before: 1970-10-01 12:00:00 
Seconds: 23630400 
After: 1970-10-01 16:00:00
1 của bạn chưa ở UTC, bạn sẽ cần phải chuyển đổi nó trước khi sử dụng nó.

Ví dụ: Phương thức Total_Seconds ()

1.

Method #1: Manual
Before: 1970-10-01 12:00:00 
Seconds: 23630400 
After: 1970-10-01 16:00:00
8 định dạng dấu thời gian đầu vào vào HH: mm: SS.

2.

Method #1: Manual
Before: 1970-10-01 12:00:00 
Seconds: 23630400 
After: 1970-10-01 16:00:00
9 Mất một năm, tháng, ngày là đối số để tạo đối tượng DateTime.

3.

import time
from datetime import datetime
total2 = int(time.mktime(datetimeobj.timetuple()))
print ("Method #2: Time Module")
print ("Before: %s" % datetimeobj)
print ("Seconds: %s " % total2)
print ("After: %s" % datetime.fromtimestamp(total2))
0 Trả về tổng số giây.

Ví dụ dưới đây đưa chuỗi thời gian vào định dạng chấp nhận được của HH: MM: SS. Python cung cấp một hoạt động trên DateTime để tính toán sự khác biệt giữa hai ngày. Nó tìm thấy sự khác biệt giữa đối tượng DateTime ban đầu và đối tượng DateTime được tạo từ chuỗi thời gian. Giá trị được trả về là một đối tượng TimeDelta mà từ đó chúng ta có thể sử dụng hàm TOTAL_SECONDS () để lấy giá trị tính bằng giây.

import datetime

time = "01:01:09"
date_time = datetime.datetime.strptime(time, "%H:%M:%S")
a_timedelta = date_time - datetime.datetime(1900, 1, 1)
seconds = a_timedelta.total_seconds()

print(seconds)


3669.0

Ví dụ: Sử dụng phương thức Timestamp ()

Python 3 cung cấp phương thức

import time
from datetime import datetime
total2 = int(time.mktime(datetimeobj.timetuple()))
print ("Method #2: Time Module")
print ("Before: %s" % datetimeobj)
print ("Seconds: %s " % total2)
print ("After: %s" % datetime.fromtimestamp(total2))
1 để dễ dàng chuyển đổi đối tượng DateTime thành giây. Phương pháp này sẽ chỉ hữu ích nếu bạn cần số giây từ 1970-01-01 UTC. Nó trả về một giá trị float đại diện cho các phân số của một giây. Giả định rằng đối tượng DateTime đại diện cho thời gian địa phương, tức là nó sẽ là số giây từ thời điểm hiện tại tại vị trí của bạn đến 1970-01-01 UTC.

from datetime import datetime

#get current date
dt = datetime.today()  
seconds = dt.timestamp()
print(seconds)


1613408089.609163

Ví dụ: Sử dụng phương thức Lịch.Timegm ()

Python 3 cung cấp một thư viện tiêu chuẩn gọi là

import time
from datetime import datetime
total2 = int(time.mktime(datetimeobj.timetuple()))
print ("Method #2: Time Module")
print ("Before: %s" % datetimeobj)
print ("Seconds: %s " % total2)
print ("After: %s" % datetime.fromtimestamp(total2))
2 có phương thức
import time
from datetime import datetime
total2 = int(time.mktime(datetimeobj.timetuple()))
print ("Method #2: Time Module")
print ("Before: %s" % datetimeobj)
print ("Seconds: %s " % total2)
print ("After: %s" % datetime.fromtimestamp(total2))
3 để dễ dàng chuyển đổi đối tượng DateTime thành giây. Phương pháp này chuyển đổi một datetime thành vài giây kể từ thời đại epoch 1970-01-01 UTC. Khi phương thức dấu thời gian trên () trả về giá trị nổi, phương thức này sẽ loại bỏ các phân số của một giây.

from datetime import datetime

#get current date
dt = datetime.today()  
seconds = dt.timestamp()
print(seconds)


1613408988

Sự kết luận

Trong bài viết này, chúng tôi đã học cách chuyển đổi một đối tượng DateTime thành định dạng giây bằng cách sử dụng mô -đun

Method #1: Manual
Before: 1970-10-01 12:00:00 
Seconds: 23630400 
After: 1970-10-01 16:00:00
1. Chúng tôi đã thảo luận về hoạt động của các chức năng DateTime bằng cách sử dụng các đoạn mã khác nhau.

Làm thế nào để bạn chuyển đổi HH MM SS thành giây trong Python?

Chia chuỗi thành các thành phần riêng lẻ và lưu trữ trong các giờ, phút và giây. Nhân giờ với 3600 ...
1:40:10, sẽ tạo ra đầu ra 6010 giây ..
Càng 0:05:15, sẽ tạo ra đầu ra là 315 giây ..
Càng 0:00:32, sẽ tạo ra đầu ra 32 giây ..

Làm thế nào để bạn có được giây trong Python?

Nhận thời gian hiện tại trong Python sử dụng thời gian. hàm thời gian () để có được thời gian hiện tại tính bằng giây kể từ kỷ nguyên như một số điểm nổi. Phương pháp này trả về dấu thời gian hiện tại trong một số điểm nổi đại diện cho số giây kể từ ngày 1 tháng 1 năm 1970, 00:00:00. Nó trả về thời gian hiện tại tính bằng giây.Use the time. time() function to get the current time in seconds since the epoch as a floating-point number. This method returns the current timestamp in a floating-point number that represents the number of seconds since Jan 1, 1970, 00:00:00. It returns the current time in seconds.

Làm cách nào để chuyển đổi DateTime thành phút?

Để chuyển đổi thời gian thành phút, nhân thời gian với 1440, đó là số phút trong một ngày (24*60).Để chuyển thời gian thành giây, nhân thời gian 86400, đó là số giây trong một ngày (24*60*60).multiply the time by 1440, which is the number of minutes in a day (24*60). To convert time to seconds, multiply the time time by 86400, which is the number of seconds in a day (24*60*60 ).

Utcnow ở Python là gì?

UTCNow () sử dụng các giá trị cung cấp HĐH.ngày giờ.utcnow () sử dụng getTimeofday (2) hoặc thời gian.thời gian () trên Python 2 (và gmtime (3) để chuyển đổi kết quả thành thời gian bị hỏng).uses OS provided values. datetime. utcnow() uses gettimeofday(2) or time. time() on Python 2 (and gmtime(3) to convert the result into broken-down time).