Hướng dẫn dùng today datetime python

Gần đây mình có làm việc nhiều 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 time format khác nhau, chuyển hóa thành dạng Datetime, chuẩn hóa thời gian lưu trữ và lưu vào database. 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.

Tips 1: Chuẩn hóa múi giờ sử dụng

Đầu tiên, cũng là quan trọng nhất, chuẩn hóa múi giờ sử dụng để convert các kiểu thời gian. Mình lựa chọn sử dụng chuẩn múi giờ 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 format 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 ý:

  • Các rất nhiều format time khác nhau nên để có thể chuyển từ string thành Datetime parse chỉ có thể xử lý một số dạng tiêu chuẩn, nếu khác dạng tiêu chuẩn phải hiểu ra cấu trúc time string để sử dụng hàm strp để cắt chuỗi tạo Datetime
  • Nếu kiểu dữ liệu Datetime không rõ 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

Timestamp là kiểu thời gian thông dụng của hệ thông 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 kiểu timezone

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 replace, hàm replace sẽ chỉ thay đổi tzinfo không qui đổi thời gian từ múi giờ này sang múi giờ khác

Nếu bạn ở 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ậy nếu Datetime đang ở múi giờ UTC, 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à một 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 năm 1988, mô tả quy cách 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 là string format time thông dụng.

In this article, you will learn to get today's date and current date and time in Python. We will also format the date and time in different formats using strftime[] method.

Nội dung chính Show

  • Video: Dates and Times in Python
  • Example 1: Python get today's date
  • Example 2: Current date in different formats
  • Example 3: Get the current date and time
  • Mục lục
  • 1- Tổng quan
  • 2- Khái niệm về Ticks
  • 3- time module
  • 4- datetime module
  • 5- datetime.timedelta
  • 6- datetime.date

Video: Dates and Times in Python

There are a number of ways you can take to get the current date. We will use the

from datetime import date

today = date.today[]

# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]

# Textual month, day and year	
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]

# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]

# Month abbreviation, day and year	
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
2 class of the datetime module to accomplish this task.

Example 1: Python get today's date

from datetime import date

today = date.today[]
print["Today's date:", today]

Here, we imported the

from datetime import date

today = date.today[]

# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]

# Textual month, day and year	
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]

# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]

# Month abbreviation, day and year	
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
2 class from the
from datetime import date

today = date.today[]

# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]

# Textual month, day and year	
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]

# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]

# Month abbreviation, day and year	
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
4 module. Then, we used the
from datetime import date

today = date.today[]

# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]

# Textual month, day and year	
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]

# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]

# Month abbreviation, day and year	
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
5 method to get the current local date.

By the way,

from datetime import date

today = date.today[]

# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]

# Textual month, day and year	
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]

# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]

# Month abbreviation, day and year	
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
5 returns a
from datetime import date

today = date.today[]

# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]

# Textual month, day and year	
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]

# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]

# Month abbreviation, day and year	
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
2 object, which is assigned to the today variable in the above program. Now, you can use the strftime[] method to create a string representing date in different formats.

Example 2: Current date in different formats

from datetime import date

today = date.today[]

# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]

# Textual month, day and year	
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]

# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]

# Month abbreviation, day and year	
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]

When you run the program, the output will be something like:

d1 = 16/09/2019
d2 = September 16, 2019
d3 = 09/16/19
d4 = Sep-16-2019

If you need to get the current date and time, you can use

from datetime import date

today = date.today[]

# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]

# Textual month, day and year	
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]

# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]

# Month abbreviation, day and year	
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
4 class of the
from datetime import date

today = date.today[]

# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]

# Textual month, day and year	
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]

# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]

# Month abbreviation, day and year	
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
4 module.

Example 3: Get the current date and time

from datetime import datetime

# datetime object containing current date and time
now = datetime.now[]
 
print["now =", now]

# dd/mm/YY H:M:S
dt_string = now.strftime["%d/%m/%Y %H:%M:%S"]
print["date and time =", dt_string]	

You will gate output like below.

now = 2021-06-25 07:58:56.550604
date and time = 25/06/2021 07:58:56

Here, we have used

d1 = 16/09/2019
d2 = September 16, 2019
d3 = 09/16/19
d4 = Sep-16-2019
0 to get the current date and time. Then, we used
d1 = 16/09/2019
d2 = September 16, 2019
d3 = 09/16/19
d4 = Sep-16-2019
1 to create a string representing date and time in another format.

Mục lục

Facebook

1- Tổng quan

Python cung cấp cho bạn 4 module có liên quan tới ngày tháng và thời gian.

ModuleMô tảtimetime là một module chỉ bao gồm các hàm, và các hằng số liên quan tới ngày tháng và thời gian, không có lớp [class] nào được định nghĩa trong module này.datetimeModule này định nghĩa một số lớp đại diện cho ngày tháng và thời gian.calendarModule này chứa các hàm liên quan đến lịch. Nó cũng định nghĩa ra các lớp đại diện cho Lịch, và exception có liên quan.localeModule này chứa các hàm sử dụng để định dạng [format], hoặc phân tích [parse] ngày tháng và thời gian dựa trên locale [vùng miền, địa lý].

datetime module:

datetime là một module, được thiết kế dựa trên hướng đối tượng [object oriented] để làm việc với ngày tháng và thời gian trong Python. Nó có một vài lớp đại diện cho ngày tháng và thời gian.

ClassMô tảdatetime.dateMột đối tượng date đại diện cho ngày tháng [date], không bao gồm thời gian, theo bộ lịch Gregorian [Dương lịch].datetime.datetimeMột đối tượng datetime đại diện cho ngày tháng [date] và thời gian, theo bộ lịch Gregorian.datetime.timeMột đối tượng time đại diện cho thời gian [time], không bao gồm ngày tháng [date].datetime.tzinfoLà một lớp cơ sở trừu tượng [base abstract class] cho các đối tượng thông tin múi giờ [timezone].datetime.timezoneLà một lớp con trực tiếp của lớp tzinfo, theo chuẩn UTC [Coordinated Universal Time] [Giờ hợp nhất quốc tế].datetime.timedeltaĐối tượng timedelta mô tả một khoảng thời gian [duration], là khoảng thời gian giữa 2 thời điểm.

calendar module:

calendar là một module cung cấp các hàm, và một vài lớp liên quan tới Lịch, nó hỗ trợ tạo [generate] ra hình ảnh của bộ lịch dưới dạng text, html, ....

2- Khái niệm về Ticks

Trong khoa học máy tính, 12h sáng ngày 1 tháng 1 năm 1970 là một thời điểm đặc biệt, nó được sử dụng để bắt đầu đếm thời gian. Thời điểm đặc biệt này được gọi là epoch [Tạm hiểu là kỷ nguyên máy tính].

Trong Python, khoảng thời gian giữa thời điểm hiện tại và thời điểm đặc biệt nói trên được tính bằng số giây [seconds]. Khoảng thời gian đó được gọi là Ticks.

Hàm time[] trong module time trả về số giây [seconds] tính từ thời điểm 12h sáng ngày 1 tháng 1 năm 1970 tới hiện tại. Nó trả về một kiểu số chấm động [floating point].

ticketExample.py


# Nhập khẩu module time.
import time;

# Số giây tính từ 12h sáng ngày 1-1-1970 tới hiện tại.
ticks = time.time[]  
print ["Number of ticks since 12:00am, January 1, 1970: ", ticks]

Output:


Number of ticks since 12:00am, January 1, 1970: 1492244686.7766237

3- time module

time là một module chỉ bao gồm các hàm, và các hằng số liên quan tới ngày tháng và thời gian, có một vài lớp [class] viết trên C/C++ được định nghĩa trên module này. Chẳng hạn lớp struct_time.

Trên module time, thời gian được đại diện bởi Ticks hoặc struct_time. Nó có các hàm để định dạng [format] Ticks hoặc struct_time thành string, và ngược lại phân tích [parse] một string thành Ticks hoặc struct_time.

Chỉ sốThuộc tínhCác giá trị0
d1 = 16/09/2019
d2 = September 16, 2019
d3 = 09/16/19
d4 = Sep-16-2019
2[Ví dụ, 1993]1
d1 = 16/09/2019
d2 = September 16, 2019
d3 = 09/16/19
d4 = Sep-16-2019
3Phạm vi [1, 12]2
d1 = 16/09/2019
d2 = September 16, 2019
d3 = 09/16/19
d4 = Sep-16-2019
4Phạm vi [1, 31]3
d1 = 16/09/2019
d2 = September 16, 2019
d3 = 09/16/19
d4 = Sep-16-2019
5Phạm vi [0, 23]4
d1 = 16/09/2019
d2 = September 16, 2019
d3 = 09/16/19
d4 = Sep-16-2019
6Phạm vi [0, 59]5
d1 = 16/09/2019
d2 = September 16, 2019
d3 = 09/16/19
d4 = Sep-16-2019
7Phạm vi [0, 61]; Xem thêm mô tả phía dưới6
d1 = 16/09/2019
d2 = September 16, 2019
d3 = 09/16/19
d4 = Sep-16-2019
8Phạm vi [0, 6], Thứ hai là 07
d1 = 16/09/2019
d2 = September 16, 2019
d3 = 09/16/19
d4 = Sep-16-2019
9Phạm vi [1, 366]8
from datetime import datetime

# datetime object containing current date and time
now = datetime.now[]
 
print["now =", now]

# dd/mm/YY H:M:S
dt_string = now.strftime["%d/%m/%Y %H:%M:%S"]
print["date and time =", dt_string]	
00, 1 hoặc -1;N/A
from datetime import datetime

# datetime object containing current date and time
now = datetime.now[]
 
print["now =", now]

# dd/mm/YY H:M:S
dt_string = now.strftime["%d/%m/%Y %H:%M:%S"]
print["date and time =", dt_string]	
1Viết tắt của tên múi giờN/A
from datetime import datetime

# datetime object containing current date and time
now = datetime.now[]
 
print["now =", now]

# dd/mm/YY H:M:S
dt_string = now.strftime["%d/%m/%Y %H:%M:%S"]
print["date and time =", dt_string]	
2offset east of UTC in seconds

tm_sec

Phạm vi giây [second] thực sự là 0 đến 61; điều này được giải thích là giây nhuận [double leap seconds]. Mặc dù rất rất hiếm.

Các hàm của time gọi đến các hàm được viết trên ngôn ngữ C. Dưới đây là danh sách các hàm thông dụng, chi tiết hơn bạn có thể tham khảo tài liệu trên website chính thức của Python.

Ticks ==> struct_time

HàmMô tảtime.gmtime[[secs]]Chuyển đổi thời gian tính theo giây từ thời điểm spoch thành một struct_time trong UTC, trong đó cờ dst là 0. Nếu tham số secs không được cung cấp hoặc None, nó sẽ có giá trị mặc định trả về bởi hàm time[].time.localtime[[secs]]Giống với hàm gmtime[] nhưng chuyển đổi thành thời gian địa phương [local time]. Và cờ dst có giá trị  là 1.

Hàm gmtime[[secs]] và localtime[[secs]] đều trả về kiểu struct_time.

time_gmtimeExample.py


import time

# 1 giây sau kỷ nguyên máy tính [epoch]. 
# Hàm này trả về một kiểu struct: struct_time
ts = time.gmtime[1] 
print ["1 seconds after epoch: "] 
print [ts]  
print ["\n"]

# Thời điểm hiện tại, giống với time.gmtime[ time.time[] ]
# Hàm này trả về một kiểu struct: struct_time
ts = time.gmtime[] 
print ["struct_time for current time: "]
print [ts]

struct_time ==> Ticks

Bạn có thể chuyển đổi một struct_time hoặc một Tuple đại diện cho thời gian thành Ticks [Số giây tính từ thời điểm epoch].

time_mktime_example.py


import time

a_struct_time = time.localtime[] 
print ["Current time as struct_time: "];
print [a_struct_time] 
# Chuyển đổi struct_time hoặc Tuple thành Ticks.
ticks = time.mktime[a_struct_time]  
print ["Ticks: ", ticks]

# Một Tuple có 9 phần tử.
aTupleTime = [ 2017, 4, 15, 13, 5, 34, 0, 0, 0] 
print ["\n"]
print ["A Tuple represents time: "]
print [aTupleTime]

# Chuyển đổi struct_time hoặc Tuple thành Ticks.
ticks = time.mktime[aTupleTime] 
print ["Ticks: ", ticks]

struct_time, Ticks ==> string

HàmMô tảtime.asctime[[struct_t]]Chuyển đổi một tuple hoặc struct_time đại diện cho một thời gian như được trả về bởi gmtime[] hoặc localtime[] thành một string như mẫu sau: 'Sun Jun 20 23:21:05 1993'. Nếu tham số struct_t không được cung cấp, thời điểm hiện tại được trả về bởi localtime[] sẽ được sử dụng. Thông tin địa phương [locale] không được sử dụng bởi asctime[].time.ctime[[secs]]Chuyển đổi thời gian theo số giây [seconds] từ thời điểm epoch thành một string đại diện cho thời gian máy tính [local time]. Nếu tham số secs không được cung cấp hoặc None, thời gian hiện tại được trả về bởi time[] sẽ được sử dụng. ctime[secs] tương đương với asctime[localtime[secs]]. Thông tin địa phương [locale] không được sử dụng bởi ctime[].

time_asctime_ctime_example.py


import time
 
# Một Tuple với 9 phần tử.
# [Year, month, day, hour, minute, second, wday, yday, isdst]
a_tuple_time = [2017, 4, 15 , 22 , 1, 29, 0, 0, 0] 
a_timeAsString = time.asctime[a_tuple_time] 
print ["time.asctime[a_tuple_time]: ", a_timeAsString] 

a_struct_time = time.localtime[]
print ["a_struct_time: ", a_struct_time]

a_timeAsString = time.asctime[a_struct_time] 
print ["time.asctime[a_struct_time]: ", a_timeAsString]

# Số giây tính từ 12h sáng ngày 1-1-1970 tới hiện tại.
ticks = time.time[] 
a_timeAsString = time.ctime[ticks]  
print ["time.ctime[ticks]: ", a_timeAsString]

Phân tích và định dạng

module time cung cấp một số hàm sử dụng để phân tích [parse] một string thành thời gian. Và ngược lại, định dạng [format] thời gian thành một string.

HàmMô tảtime.strptime[string[, format] ]Phân tích một string đại diện một thời gian theo một định dạng. Trả về một struct_time giống như được trả về bởi hàm gmtime[] hoặc localtime[].time.strftime[format [, t] ]Chuyển đổi một Tuple hoặc struct_time đại diện thời gian giống như được trả về bởi hàm gmtime[] hoặc localtime[] thành một string xác định bởi tham số format. Nếu nó không được cung cấp, thời gian hiện tại được trả về bởi localtime[] sẽ được sử dụng. Tham số format phải là một string. ValueError có thể được ném ra [throw] nếu một trường [field] nào đó trong tham số 't' nằm ngoài phạm vi cho phép.

Ví dụ phân tích [parse] một string thành thời gian có kiểu struct_time.

time_strptime_example.py

from datetime import date

today = date.today[]

# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]

# Textual month, day and year	
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]

# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]

# Month abbreviation, day and year	
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
0

Xem thêm về module time:

4- datetime module

datetime là một module, được thiết kế theo hướng đối tượng để làm việc với ngày tháng và thời gian trong Python. Nó định nghĩa một vài lớp đại diện cho ngày tháng và thời gian.

ClassMô tảdatetime.dateMột đối tượng date đại diện cho một ngày tháng [date], không bao gồm thời gian, theo bộ lịch Gregorian.datetime.datetimeMột đối tượng datetime đại diện cho một ngày tháng [date] và thời gian, theo bộ lịch Gregorian.datetime.timeMột đối tượng time đại diện cho thời gian [time], không bao gồm ngày tháng [date].datetime.tzinfoLà một lớp cơ sở trừu tượng [base abstract class] cho các đối tượng thông tin múi giờ.datetime.timezoneLà một lớp con trực tiếp của lớp tzinfo, theo chuẩn UTC [Coordinated Universal Time] [Giờ hợp nhất quốc tế].datetime.timedeltaA timedelta object represents a duration, the difference between two dates or times.

5- datetime.timedelta

timedelta là một lớp nằm trong module datetime, nó mô tả một khoảng thời gian. Là sự khác biệt giữa 2 thời gian.

Lớp timedelta có 7 thuộc tính [attribute], đều có giá trị mặc định là 0.

Thuộc tínhMô tảPhạm vidays -999999999 : 999999999seconds 0 : 86399microseconds1 seconds = 1000,000 microseconds0 : 999999milliseconds1 seconds = 1000 milliseconds minutes  hours  weeks  

Các toán tử hỗ trợ.

Toán tửVí dụ
from datetime import datetime

# datetime object containing current date and time
now = datetime.now[]
 
print["now =", now]

# dd/mm/YY H:M:S
dt_string = now.strftime["%d/%m/%Y %H:%M:%S"]
print["date and time =", dt_string]	
3t2 = [hours = 10, seconds= 2]
t3 = [hours = 1, minutes = 3]
--> t1 = [hours= 11, minutes = 3, seconds = 2]
from datetime import datetime

# datetime object containing current date and time
now = datetime.now[]
 
print["now =", now]

# dd/mm/YY H:M:S
dt_string = now.strftime["%d/%m/%Y %H:%M:%S"]
print["date and time =", dt_string]	
4t2 = [hours = 10, seconds= 2]
t3 = [hours = 1, minutes = 3]
--> t1 = [hours= 8, minutes = 57, seconds = 2]
from datetime import datetime

# datetime object containing current date and time
now = datetime.now[]
 
print["now =", now]

# dd/mm/YY H:M:S
dt_string = now.strftime["%d/%m/%Y %H:%M:%S"]
print["date and time =", dt_string]	
5t2 = [hours = 10, seconds= 2]
i = 3
--> t1 = [days =1, hours = 6, seconds= 6]  
from datetime import datetime

# datetime object containing current date and time
now = datetime.now[]
 
print["now =", now]

# dd/mm/YY H:M:S
dt_string = now.strftime["%d/%m/%Y %H:%M:%S"]
print["date and time =", dt_string]	
6t2 = [hours = 25, seconds= 2]
--> t1 = [days: 1, hours: 1, seconds: 2]
from datetime import datetime

# datetime object containing current date and time
now = datetime.now[]
 
print["now =", now]

# dd/mm/YY H:M:S
dt_string = now.strftime["%d/%m/%Y %H:%M:%S"]
print["date and time =", dt_string]	
7return t1
from datetime import datetime

# datetime object containing current date and time
now = datetime.now[]
 
print["now =", now]

# dd/mm/YY H:M:S
dt_string = now.strftime["%d/%m/%Y %H:%M:%S"]
print["date and time =", dt_string]	
8t1 = [hours = 10, seconds= 2]
--> -t1 = [days = -1, hours = 13, minutes = 59, seconds= 58]
from datetime import datetime

# datetime object containing current date and time
now = datetime.now[]
 
print["now =", now]

# dd/mm/YY H:M:S
dt_string = now.strftime["%d/%m/%Y %H:%M:%S"]
print["date and time =", dt_string]	
9Giá trị tuyệt đối, tương đương với +t khi
now = 2021-06-25 07:58:56.550604
date and time = 25/06/2021 07:58:56
0, và là -t khi 
now = 2021-06-25 07:58:56.550604
date and time = 25/06/2021 07:58:56
1.

t = [hours= -25, minutes = 3]
--> t = [days =  -2, hours = 23, minutes = 3]
--> abs[t] = [days =  1, hours = 0, minutes = 57]

now = 2021-06-25 07:58:56.550604
date and time = 25/06/2021 07:58:56
2Trả về string theo mẫu [D day[s], ][H]H:MM:SS[.UUUUUU], D có thể nhận giá trị âm.
now = 2021-06-25 07:58:56.550604
date and time = 25/06/2021 07:58:56
3Trả về string theo mẫu datetime.timedelta[D[, S[, U]]], D có thể nhận giá trị âm

6- datetime.date

datetime.date là một lớp, đối tượng của nó đại diện cho ngày tháng [date], không bao gồm thông tin thời gian

Phương thức khởi tạo [Constructor]

** constructor **

from datetime import date

today = date.today[]

# dd/mm/YY
d1 = today.strftime["%d/%m/%Y"]
print["d1 =", d1]

# Textual month, day and year	
d2 = today.strftime["%B %d, %Y"]
print["d2 =", d2]

# mm/dd/y
d3 = today.strftime["%m/%d/%y"]
print["d3 =", d3]

# Month abbreviation, day and year	
d4 = today.strftime["%b-%d-%Y"]
print["d4 =", d4]
1

Constructor của lớp date có thể phát ra lỗi ValueError nếu các giá trị truyền vào không hợp lệ [nằm ngoài phạm vi cho phép].

Các hằng số:

Hằng sốMô tảdate.minBiểu thị ngày đầu tiên trong phạm vi của lớp date, date[MINYEAR, 1, 1].date.maxBiểu thị ngày cuối cùng trong phạm vi của lớp date, date[MAXYEAR, 12, 31].date.resolutionSự khác biệt nhỏ nhất giữa các đối tượng date không bằng nhau, timedelta[days=1].

Các toán tử

Toán tửMô tả
now = 2021-06-25 07:58:56.550604
date and time = 25/06/2021 07:58:56
4Cộng thêm một khoảng thời gian, timedelta
now = 2021-06-25 07:58:56.550604
date and time = 25/06/2021 07:58:56
5Trừ một khoảng thời gian, timedelta
now = 2021-06-25 07:58:56.550604
date and time = 25/06/2021 07:58:56
6Trừ hai đối tượng date.
now = 2021-06-25 07:58:56.550604
date and time = 25/06/2021 07:58:56
7So sánh hai đối tượng date.

Các phương thức:

Phương thứcMô tảdate.replace[year=self.year, month=self.month, day=self.day]Trả về một đối tượng date với cùng giá trị, ngoại trừ các giá trị bị thay thế cho bởi tham số.

Ví dụ:
d == date[2002, 12, 31],  d.replace[day=26] == date[2002, 12, 26].

date.timetuple[]Trả về một time.struct_time như được trả về bởi time.localtime[]. Trong đó giờ, phút và giây bằng 0, và cờ DST là -1.

d.timetuple[] tương đương với time.struct_time[[d.year, d.month, d.day, 0, 0, 0, d.weekday[], yday, -1]], trong đó yday = d.toordinal[] - date[d.year, 1, 1].toordinal[] + 1 là số thứ tự ngày trong năm, ngày 1-1 được gọi là ngày thứ 1.

date.toordinal[]Trả về số thứ tự của ngày theo lịch Gregorian, theo đó ngày 1 tháng 1 của năm 1 có thứ tự là 1.

Đối với một đối tượng date bất kỳ d, date.fromordinal[d.toordinal[]] == d.

date.weekday[]Trả về ngày trong tuần có kiểu integer, với thứ hai là 0, thứ ba là 1, .. và chủ nhật là 6.

Ví dụ, date[2002, 12, 4].weekday[] == 2, thứ tư. Xem thêm isoweekday[].

date.isoweekday[]Trả về ngày trong tuần là số có kiểu integer [Theo tiêu chuẩn ISO], với thứ hai là 1, thứ ba là 2 và chủ nhật là 7.

Ví dụ, date[2002, 12, 4].isoweekday[] == 3, Thứ tư. Xem thêm weekday[], isocalendar[].

date.isocalendar[]Trả về một Tuple có 3 phần tử, [ISO year, ISO week number, ISO weekday].date.isoformat[]Trả về một String đại diện ngày tháng theo định dạng ISO 8601, ‘YYYY-MM-DD’.

Ví dụ, date[2002, 12, 4].isoformat[] == '2002-12-04'.

date.__str__[]Đối với đối tượng date d, str[d] tương đương với d.isoformat[].date.ctime[]Trả về String đại diện date, ví dụ date[2002, 12, 4].ctime[] == 'Wed Dec 4 00:00:00 2002'.

d.ctime[] tương đương với time.ctime[time.mktime[d.timetuple[]]]. Hàm ctime[] được gọi phù hợp với tiêu chuẩn C khi chạy trên các nền tảng [flatform].

date.strftime[format]Trả về string đại diện date, theo định dạng [format] cho bởi tham số. Các mã định dạng cho giờ phút giây có giá tri 0.

Xem thêm hàm strftime[] và strptime[] của module time.

date.__format__[format]Tương tự với date.strftime[]. 

Có thể bạn quan tâm

Đây là các khóa học trực tuyến bên ngoài website o7planning mà chúng tôi giới thiệu, nó có thể bao gồm các khóa học miễn phí hoặc giảm giá.

Chủ Đề