Вақти Python  


Python модули сохташударо таъмин мекунад 'замони замон'бо сана ва вақт кор кардан. Мо бояд модули 'datetime' -ро барои кор бо он ворид кунем. Биёед кор бо барномаҳои соддатарро барои фаҳмидани истифодаи вақти Python оғоз кунем.

Хусусиятҳои модули Python datetime datetime:

Мо метавонем рӯйхати атрибутҳои модули Python datetime datetime -ро бо истифодаи dir () гирем.

import datetime

print(dir(datetime))
['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__packa
ge__', '__spec__', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'timezone', 'tzinfo']

Синфҳои маъмултарини модули datetime инҳоянд:

  • синфи сана
  • синфи вақт
  • синфи datetime
  • синфи тимеделта

Синфи Python datetime:

Сана ва вақти ҳозираро гиред:

Бо синфи 'datetime' мо метавонем сана ва вақти ҷориро гирем. Синфи 'datetime' дорои усули 'ҳозир' мебошад. Даъват кардани усули now () сана ва вақти ҷории маҳаллиро бар мегардонад.

import datetime

print(datetime.datetime.now())
2020-09-08 15:55:17.833232

Барқароркунии синфи datetime:

Мо метавонем синфи datetime -ро барқарор кунем. Конструктор далелҳои зеринро мегирад:

datetime.datetime(year, month, day, hour, minute, second, microsecond)

Дар ҳоле ки сол, моҳ ва рӯз параметрҳои ҳатмӣ мебошанд. Параметрҳои боқимонда ихтиёрӣ мебошанд.

import datetime

date_time1=datetime.datetime(2020, 2, 29)
date_time2=datetime.datetime(2020, 2, 29, 23, 59, 59, 345678)
print(date_time1)
print(date_time2)
2020-02-29 00:00:00
2020-02-29 23:59:59.345678

Хусусиятҳои синфи datetime гиред:

Мо метавонем атрибутҳои синфи datetime -ро ба монанди як соат, моҳ, сония, вақти тамға ва ғайра бо истифода аз объекти худ чоп кунем.

import datetime

date_time=datetime.datetime(2020, 2, 29, 23, 59, 59, 345678)
print(date_time.month)
print(date_time.microsecond)
print(date_time.timestamp())
2
345678
1583000999.345678

синфи сана:

Санаи ҳозираро гиред:

Мо санаи ҷориро танҳо аз синфи 'сана' бо ду роҳ гирифта метавонем:

ҳамчунин нигаред
Луғати Python
Бо истифода аз имрӯз ():

Синфи 'сана' усули 'имрӯза' дорад. Вақте ки мо усули today () -ро меномем, он танҳо санаи ҷории маҳаллиро бар мегардонад.

import datetime

print(datetime.date.today())
2020-09-08
Бо истифода аз fromtimestamp ():

Вақти тамғаи Unix миқдори сонияҳо байни санаи муайян ва 1 январи соли 1970 дар UTC мебошад. Усули fromtimestamp () вақтро ба сана табдил медиҳад.

import datetime

print(datetime.date.fromtimestamp(1599571319))
2020-09-08

Фавран синфи сана:

Мо инчунин метавонем объектҳои синфи санаро насб кунем. Созандаи синфи сана 3 далели ҳатмиро мегирад: (сол, моҳ, рӯз).

import datetime

print(datetime.date(2020, 2, 29))
2020-02-29

Сол, моҳ ва рӯзи таърихро гиред:

Мо инчунин метавонем сол, моҳ ва рӯзи санаи мушаххасро аз синфи сана гирем.

import datetime

today=datetime.date.today()
print(today.year)
print(today.month)
print(today.day)
2020
9
8

синфи вақт:

Вақти ҳозираро гиред:

Мутаассифона, мо вақти ҳозираро аз синфи вақт гирифта наметавонем, зеро санаи аз синфи сана гирифтанро дорем. Мо вақти ҳозираро аз усули now () -и синфи datetime ба тариқи зерин гирифта метавонем:

import datetime
print(datetime.datetime.now().time())
20:30:49.929395

Синфи вақтро барқарор кунед:

Мисли синфи сана, мо инчунин метавонем синфи вақтро мисол орем.

import datetime
print(datetime.time())
00:00:00

Конструктори синфи вақт далелҳои зеринро мегирад:

datetime.time(hour, minute, second, microsecond)

Мо маҷбур нестем, ки ҳамаи далелҳоро супорем.

import datetime
print(datetime.time(11))
print(datetime.time(11, 59))
print(datetime.time(11, 59, 59))
print(datetime.time(11, 59, 59, 345678))
11:00:00
11:59:00
11:59:59
11:59:59.345678

Гирифтани соат, дақиқа, сония, микросекунд:

Мо метавонем атрибутҳои соат, дақиқа, сония ва микросекундро бо истифодаи объекти вақт ба таври инфиродӣ чоп кунем.

import datetime

time_object=datetime.time(11, 59, 59, 345678)
print(time_object.hour)
print(time_object.minute)
print(time_object.second)
print(time_object.microsecond)
11
59
59
345678

синфи тимеделта:

Таймелта чизе нест, ҷуз фарқи байни ду сана ё ду маротиба.

import datetime

date1=datetime.date(2019,2,28)
date2=datetime.date(2020,2,29)
time1=datetime.datetime(2019,2,28,7,55,59,234567)
time2=datetime.datetime(2020,2,29,6,59,58,345678)

timedelta1=date2-date1
timedelta2=time2-time1

print(timedelta1)
print(timedelta2)
print(type(timedelta1))
print(type(timedelta2))
366 days, 0:00:00
365 days, 23:03:59.111111
<class 'datetime.timedelta'>
<class 'datetime.timedelta'>

Агар шумо намуди фарқи байни объектҳои сана ва вақтро пай баред, он timedelta аст.

ҳамчунин нигаред
Python Барои ҳалқа

Фавран синфҳои тимеделта:

Мисли дигар синфҳо, мо инчунин метавонем синфи тимеделтаро бардорем.

import datetime

timedelta1=datetime.timedelta(weeks=2, seconds=59)
timedelta2=datetime.timedelta(days=2, seconds=56)

timedelta3=timedelta1-timedelta2

print(timedelta3)
print(type(timedelta3))
12 days, 0:00:03
<class 'datetime.timedelta'>

Объектҳои манфии timedelta:

Мо метавонем abs () -ро барои чоп кардани объекти манфии timedelta истифода барем.

import datetime

timedelta1=datetime.timedelta(weeks=2, seconds=59)
timedelta2=datetime.timedelta(days=2, seconds=56)

timedelta3=timedelta2-timedelta1

print(timedelta3)
print(abs(timedelta3))
-13 days, 23:59:57
12 days, 0:00:03

Мо на танҳо фарқи байни ду объекти тимеделтаро пайдо карда метавонем, балки ҷамъи онро бо оператори '+' ҳам пайдо карда метавонем. Инчунин, мо метавонем объектҳои тимеделтаро ба бутунҳо ва шиноварҳо зарб ва тақсим кунем.

Вақти формати Python:  

Дар баъзе сенарияҳо, шумо метавонед сана ва вақтро дар формати дилхоҳатон муаррифӣ кунед. Масалан, барои санаҳо ба ҷои истифодаи формати 'yyyy-mm-dd', шумо формати 'dd / mm / yyyy' -ро мехоҳед.

Python барои ин мақсад ду усули зерро пешниҳод мекунад.

  • strftime () - объекти datetime-ро ба сатр табдил медиҳад
  • strptime () - объекти сатрро ба datetime табдил медиҳад

strftime ():

Усули strftime () дар синфҳои datetime, сана ва вақт муайян карда мешавад. Аз ин рӯ, он объектҳои вақт, вақт ва рӯзро ба сатр табдил медиҳад.

import datetime

now=datetime.datetime.now()

t=now.strftime('%H:%M:%S')
str1=now.strftime('%d/%m/%Y, %H:%M:%S')
str2=now.strftime('%m/%d/%Y, %H:%M:%S')

print(now)
print(t)
print(str1)
print(str2)
print(type(t),type(str1),type(str2))
2020-09-09 17:34:27.000451
17:34:27
09/09/2020, 17:34:27
09/09/2020, 17:34:27
<class 'str'> <class 'str'> <class 'str'>

Дар ин ҷо% H,% M,% S,% Y,% m,% s рамзҳои формат мебошанд. Дар зер рӯйхати рамзҳои формат, чӣ ифодакунандаи онҳо ва арзиши он оварда шудааст.

% H - соат (аз 00 то 23)

% M - дақиқа (00 то 59)

% S - сония (аз 00 то 59)

% Y - сол (0000 то 9999)

% m - моҳ (00 то 12)

% d - рӯз (00 то 31)

strptime ():

strptime () аз сатри додашуда объекти datetime месозад.

import datetime

str='29 March, 2020'

d=datetime.datetime.strptime(str, '%d %B, %Y')
print(d)
print(type(d))
2020-03-29 00:00:00
<class 'datetime.datetime'>

Дар ин ҷо рамзи формат% B номи пурраи моҳро нишон медиҳад.

ҳамчунин нигаред
CSV файлҳо дар Python