python常用time,datetime処理

7492 ワード

pythonにはtimeの3つのフォーマットがあります.
float,
struct tuple(time.struct_timeまたはdatetime.datetime)、
str
 
一般的:
float --> struct tuple:   time.localtime( float )
struct time tuple --> str: time.strftime(format, struct time tuple)
str --> struct time tuple: time.strptime(str, format)
struct time tuple --> float : time.mktime(struct time tuple)
struct time tuple --> datetime: datetime(*time_tuple[0:6])
 
float --> datetime: datetime.datetime.fromtimestamp( float )
datetime --> str: datetime.strftime(format, datetime)
str --> datetime: datetime.strptime(str, format)
datetime --> struct time tuple: datetime.timetuple()
 
Note:
timeはfloatに基づいて、小数点以下はミリ秒、整数部分は秒です.(Javaはミリ秒なのでpython_time*1000==Java_time)
datetimeはintでミリ秒部分を省略しています.datetime tupleがstructより少ないtime
 
1.現在時刻
>>> import time
>>> time.time()
1450681042.751

>>> time.localtime(time.time())
time.struct_time(tm_year=2015, tm_mon=12, tm_mday=21, tm_hour=15, tm_min=0, tm_sec=2, tm_wday=0, tm_yday=355, tm_isdst=0)

>>> time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
'2015-12-21 15:01:28'


>>> from datetime import datetime
>>> datetime.now()
datetime.datetime(2015, 12, 21, 14, 58, 38, 279000)

>>> datetime.today()
datetime.datetime(2015, 12, 21, 14, 59, 20, 204000)

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

>>> now.isocalendar() # 2015   52     
(2015, 52, 1)

>>> now.isoweekday() #    ,1:Monday;   now.weekday()     0  
1

 
2.日付文字列-->日付
>>> s='2015-12-21 15:01:28'
>>> timeTuple = datetime.strptime(s, '%Y-%m-%d %H:%M:%S')
datetime.datetime(2015, 12, 21, 15, 1, 28)

>>> datetime.datetime.strftime('%Y/%m/%d %H:%M:%S', timeTuple)

>>> s='2015-12-21 15:01:28'
>>> timeTuple = datetime.strptime(s, '%Y-%m-%d %H:%M:%S') time.struct_time(tm_year=2015, tm_mon=12, tm_mday=21, tm_hour=15, tm_min=1, tm_sec=28, tm_wday=0, tm_yday=355, tm_isdst=-1) >>> time.strftime('%Y/%m/%d %H:%M:%S',timeTuple)
  python          :
  %y         (00-99%Y         (000-9999%m   (01-12%d       (0-31%H 24      (0-23%I 12      (01-12%M    (00=59%S  (00-59%a         
  %A         
  %b          
  %B          
  %c               
  %j      (001-366%p   A.M. P.M.    
  %U        (00-53%w   (0-6),         
  %W        (00-53%x          
  %X          
  %Z        
  %% %    

 
3.タイムスタンプ
>>> time.mktime(time.strptime(s,'%Y-%m-%d %H:%M:%S'))
1450681288.0

>>> int(time.time())
# timestamp to time tuple in UTC
timestamp = 1226527167.595983
time_tuple = time.gmtime(timestamp)
print repr(time_tuple)
# timestamp to time tuple in local time
timestamp = 1226527167.595983
time_tuple = time.localtime(timestamp)
print repr(time_tuple)

 
2.日付加算減算
import datetime

now = datetime.datetime.now() # datetime.datetime(2015, 12, 16, 15, 6, 37, 420000)
dayOfweek = datetime.datetime.isoweekday()
if dayOfweek == 1: # Monday
    last_time = now + datetime.timedelta(days=-3)
else:
    last_time = now + datetime.timedelta(days=-1)

 
転載先:https://www.cnblogs.com/snow-backup/p/5063665.html