『Pythonノート』初歩学習:入門進級、基礎編

6838 ワード

目次
一、取得時間、日付
1.現在のタイムスタンプのフォーマットを取得
2.現在時刻、yyyy-MM-dd hh:mm:ss形式を取得
3.現在の日付と時刻を取得し、タイムスタンプをローカルの日付と時刻にフォーマットする
4.現在の日付と時刻の取得
5.現在の日付と時刻を取得し、datetimeは文字列を回転する
6.現在の日付の取得
7.昨日の現在時刻を取得
8.昨日指定した時間を取得
9.取得前週(取得前7日間の期間、今日を除く)
10.前月の期間(前月の初日から前月の最終日)を取得
二、日付フォーマットの変換
1.アメリカン日付変換
2.UTC形式のローカル時間
3.文字列回転datetime
4.datetime回転文字列
三、文字列の切り取り
1.「下付き」に従って切り取ります.
2.「含む文字」に基づいて切り取ります.
四、文字列フォーマット関数str.format()
一、取得時間、日付
1.現在のタイムスタンプのフォーマットを取得
書式:1578879320.382141
import time

print(time.time())

2.現在時刻、yyyy-MM-dd hh:mm:ss形式を取得
フォーマット:2020-01-13 09:39:20
import time

print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))

strftime(format[,tuple])->stringが指定するstruct_time(デフォルトは現在の時間)、
指定したフォーマット文字列に基づいてpythonの時刻日付フォーマット記号を出力します.
%y 2桁の年表示(00-99)
%Y 4桁の年表示(000-9999)
%m月(01-12)
%d月内の1日(0-31)
%H 24時間制時間数(0-23)
%I 12時間制時間数(01-12)
%M分(00=59)
%S秒(00-59)
%aローカル簡略化曜日名
%Aローカルフルタイム曜日名
%bローカル簡略化された月名
%Bローカル完全月名
%cローカル対応の日付表示と時間表示
%j年間の1日(001-366)
%pローカルA.M.またはP.M.の等価子
%U年間の曜日(00-53)日曜日が曜日の始まり
%w曜日(0-6)、日曜日は曜日の開始
%W年間の曜日(00-53)月曜日が週の始まり
%xローカル対応の日付表示
%Xローカル対応時間表示
%Z現在のタイムゾーンの名前
%%番号自体
3.現在の日付と時刻を取得し、タイムスタンプをローカルの日付と時刻にフォーマットする
書式:time.struct_time(tm_year=2020, tm_mon=1, tm_mday=13, tm_hour=9, tm_min=36, tm_sec=44, tm_wday=0, tm_yday=13, tm_isdst=0)
import time

print(time.localtime(time.time()))

4.現在の日付と時刻の取得
フォーマット:2020-01-13 09:45:06.057097
import datetime

print(datetime.datetime.now())

5.現在の日付と時刻を取得し、datetimeは文字列を回転する
フォーマット:2020-01-13 09:48:22
import datetime

#        
now_datetime = datetime.datetime.now()
print(now_datetime.strftime('%Y-%m-%d %H:%M:%S'))

6.現在の日付の取得
フォーマット:2020-01-13
import datetime

print(datetime.datetime.now().strftime('%Y-%m-%d'))

7.昨日の現在時刻を取得
import datetime

#      2020-01-13 10:14:06.538507
# 1     (1 day, 0:00:00)
one_day = datetime.timedelta(days=1)
#        (2020-01-12 10:14:06.538507)
y_now = datetime.datetime.now() - one_day

8.昨日指定した時間を取得
import datetime

#      2020-01-13 10:14:06.538507
# 1     (1 day, 0:00:00)
one_day = datetime.timedelta(days=1)

#        
y_now = datetime.datetime.now() - one_day

#    0 0 0 (2020-01-12 00:00:00)
y_date = datetime.datetime(y_now.year, y_now.month, y_now.day, 0, 0, 0)

9.取得前週(取得前7日間の期間、今日を除く)
フォーマット:2020-01-06 00:00---2020-01-12 23:59:59
import datetime

#      2020-01-13 10:36:27.432142
# 1     (1 day, 0:00:00)
one_day = datetime.timedelta(days=d.isoweekday())

#        (2020-01-12 10:36:27.432142)
y_now = d - one_day

# 6     (6 days, 0:00:00)
six_day = datetime.timedelta(days=6)

# 6       (2020-01-06 10:36:27.432142)
six_now = y_now - six_day

# 6   0 0 0 (2020-01-06 00:00:00)
date_from = datetime.datetime(six_now.year, six_now.month, six_now.day, 0, 0, 0)

#    23 59 59 (2020-01-12 23:59:59)
date_to = datetime.datetime(y_now.year, y_now.month, y_now.day, 23, 59, 59)

#  7    ,     
print('---'.join([str(date_from), str(date_to)]))

10.前月の期間(前月の初日から前月の最終日)を取得
フォーマット:2019-12-01 00:00---2019-12-31 23:59:59
import datetime

#      2020-01-13 10:53:28.794019
#              (13 days, 0:00:00)
day_count = datetime.timedelta(days=d.day)

#                 (2019-12-31 10:53:28.794019)
l_month = d - day_count

#                 (2019-12-01 00:00:00)
date_from = datetime.datetime(l_month.year, l_month.month, 1, 0, 0, 0)

#                (2019-12-31 23:59:59)
date_to = datetime.datetime(l_month.year, l_month.month, l_month.day, 23, 59, 59)

# #          2019-12-01 00:00:00 --- 2019-12-31 23:59:59
print(' --- '.join([str(date_from), str(date_to)]))

二、日付フォーマットの変換
1.アメリカン日付変換
フォーマット:October 11,2019回転2019-10-11
import time

def trans_format(self, datetime):
	time_struct = time.strptime(datetime, '%B %d, %Y')
	times = time.strftime('%Y-%m-%d', time_struct)
	return times


#       
datetime = self.trans_format(times)
print(datetime)

2.UTC形式のローカル時間
フォーマット:2019-10-10 T 21:03:10.00 Z回転2019-10-11 05:03:10
import datetime

utc = "2019-10-10T21:03:10.000Z"
UTC_FORMAT = "%Y-%m-%dT%H:%M:%S.%fZ"
utcTime = datetime.datetime.strptime(utc, UTC_FORMAT)
localtime = utcTime + datetime.timedelta(hours=8)
print(localtime)

3.文字列回転datetime
フォーマット:2019-01-12 09:52:40
import datetime

str = '2019-01-12 09:52:40'
time = datetime.datetime.strptime(str, '%Y-%m-%d %H:%M:%S')
print(time)

4.datetime回転文字列
フォーマット:2020-01-13 09:48:22
import datetime

#        
now_datetime = datetime.datetime.now()
print(now_datetime.strftime('%Y-%m-%d %H:%M:%S'))

三、文字列の切り取り
1.「下付き」に従って切り取ります.
str = "     ,     "

# 1.   1   4    
print(str[0:4])

# 2.          
print(str[:])

# 3.    7      1        ,    1   ,        
print(str[6:])

# 4.    1       3        ,   1   ,         
print(str[:-3])

# 5.   3   
print(str[2])

# 6.     1   
print(str[-1])

# 7.         
print(str[::-1])

# 8.     3     1      ,     3   ,         
print(str[-3:-1])

# 9.     3    1   ,     3   ,        
print(str[-3:])

# 10.    ,    ( 1     8   ),  2       
print(str[0:8:2])

次のように印刷します.
1:    
2:     ,     
3:     
4:     ,  
5: 
6: 
7:     ,     
8:  
9:   
10:    

スライス切り取り
式:str[begin:end:step]
str:文字列/リスト
begin:スライスの開始位置.デフォルトは0
end:スライスのカットオフ位置.デフォルトは-1で、-1が含まれています.
Step:スライスの間隔.Stepは0にできません.デフォルトは1です(0より大きい場合は左から右へ、0より小さい場合は右から左へ)
2.「含む文字」に基づいて切り取ります.
str = "['     ,     ']"

# 1.      ['
print(str.split("['")[-1])

# 2.      ']
print(str.split("']")[0])

# 3.   [' ']     
print(str.split("['")[-1].split("']")[0])

次のように印刷します.
1:     ,     ']
2:['     ,     
3:     ,     

四、文字列フォーマット関数str.format()
#     
print("  :{},  :{}".format("   ", "    "))

#     
print("  :{name},    {adress}".format(name="   ", adress="    "))

#         
site = {"name": "   ", "adress": "    "}
print("  :{name},   :{adress}".format(**site))

#           ,"0"     
arr = ['   ', '    ']
print("  :{0[0]},   :{0[1]}".format(arr))

#      
    ~ ~ ~ ~