5.6時間モジュール
当時の一般的な方法は、すでに知っている:time.time()は、現在の時刻のタイムスタンプを取得します。time.sleep(NUM)スレッドが指定した時間(秒)を延期して、ダウン続けます。
時間表現
タイムスタンプのタプル(なstruct_time)、フォーマットされた時刻文字列:に分けることができます
タイムスタンプ--timestamp
タイムスタンプは、第二のタイプによって、1970年1月1日夜12時00分00秒の初めからはフロートであることを示しています
書式設定された時間文字列(書式文字列)
%Yは、2桁の年(00-99)を表します | %Yは4桁の年(000から9999)を示し |
%M(01-12) | 月の%d個の日内(0-31) |
%H 24時間(0-23)時間製 | %I 12時間の時間(01-12) |
分%のM個(= 59 00) | %のS秒(00-59) |
%週にはローカル名を簡素化 | 地元%完全な曜日名 |
%のB地元の簡素化の月名 | 地元の%のB完全な月の名前 |
%Cは、ローカルを表し、対応する日付と時刻を表します | ある日(001〜366)%jの年 |
%PローカルAMまたはPMと同等の文字 | 日曜日から始まる週の年の%U週数(00から53) |
%のW週(0-6)、日曜日が週の始まりです | 月曜日から始まる週の年の%W週数(00から53) |
%Xは、対応するローカル日付を示し | %Xは、対応するローカル時間を示します |
名%Z現在のタイムゾーン | %%%数そのもの |
タプル(なstruct_time)
なstruct_time タプル 9つの要素の合計は、9つの要素でした:(年、月、日、時、分、秒、年の最初の数週間、年などの日)
インデックス(指数) | プロパティ(属性) | バリュー(価値) |
---|---|---|
0 | tm_yearが(年) | 例えば、2011 |
1 | tm_mon(月) | 1 - 12 |
2 | tm_mday(日本) | 1から31 |
3 | tm_hour(時間) | 0から23 |
4 | tm_min(点) | 0から59 |
5 | tm_sec(S) | 0から60 |
6 | tm_wdayコンポーネント(平日) | 0--6(月曜日0) |
7 | tm_yday(年の最初の日) | 1から366 |
8 | tm_isdstが(それは夏時間であるかどうか) | デフォルトは0です |
[概要]タイムスタンプは、コンピュータが認識できる時間であり、時間列の時間を読み取ることができる人、タプルは、時間を操作するために使用されています
import time #导入时间模块
#时间戳
print(time.time())
# 1561729203.008572
#时间字符串
ft = time.strftime("%Y-%m-%d %H:%M:%S") #格式化里的字符必须是ASCII里的元素,不能是汉字
print(ft) #2019-06-28 21:42:24
#时间元组
tt = time.localtime()
print(tt)
# time.struct_time(tm_year=2019, tm_mon=6, tm_mday=28, tm_hour=21, tm_min=44, tm_sec=5, tm_wday=4, tm_yday=179, tm_isdst=0)
いくつかのフォーマット間の変換
#格式化时间---->结构化时间
ft1 = time.strftime("%Y-%m-%d %H:%M:%S")
st1 = time.strptime(ft1,"%Y-%m-%d %H:%M:%S") #转成结构化时间,后边的格式必须要与格式化时间结构一致
print(st1)
#结构化时间--->时间戳
tt1 = time.mktime(st1) #转换后,时间戳紧缺到小数点后一位
print(tt1)
#时间戳--->结构化时间
st2 = time.localtime(tt1) #不传参,就是获取当前的结构化时间
print(st2)
st3 = time.gmtime(tt1)
print(st3)
#结构化时间--->格式化时间
ft2 = time.strftime("%Y-%m-%d %H:%M:%S",st3) #strftime要把更改的时间放在第二个位置参数
print(ft2)
いるasctime与のCTIME
- なstruct_time ---->形式の時刻形式は固定です
st = time.localtime() #获取当前结构化时间
print(st)
ft = time.asctime() #获取当前格式化时间
print(ft)
ft1 = time.asctime(st) #把结构化时间转换成固定格式的格式化时间,
print(ft1)
- タイムスタンプ---->形式の時刻形式は固定です
tt = time.time()
ft = time.ctime() #不传参,获取当前格式化时间
ft1 = time.ctime(tt) #把时间戳时间转换成固定格式的格式化时间,
print(ft1)
【実践】時間差を算出します
sta_time = time.mktime(time.strptime('2017-12-23 08:30:00','%Y-%m-%d %H:%M:%S'))
end_time = time.mktime(time.strptime('2018-12-23 08:30:00','%Y-%m-%d %H:%M:%S'))
dif_time = end_time - sta_time
st = time.gmtime(dif_time)
print('过去了%d年%d月%d天%d小时%d分钟%d秒'%(st.tm_year-1970,st.tm_mon-1,
st.tm_mday-1,st.tm_hour,
st.tm_min,st.tm_sec))
5.7 datetimeモジュール
import datetime
now = datetime.datetime.now()
print(now)
print(datetime.datetime.now()+datetime.timedelta(weeks=4)) #4周后
print(datetime.datetime.now()+datetime.timedelta(weeks=-3)) #3周前
print(datetime.datetime.now() + datetime.timedelta(days=-2)) # 2天前
print(datetime.datetime.now() + datetime.timedelta(days=3)) # 三天后
print(datetime.datetime.now() + datetime.timedelta(hours=5)) # 5小时后
print(datetime.datetime.now() + datetime.timedelta(hours=-6)) # 6小时前
print(datetime.datetime.now() + datetime.timedelta(minutes=-10)) # 10分钟前
print(datetime.datetime.now() + datetime.timedelta(minutes=15)) # 15分钟后
print(datetime.datetime.now() + datetime.timedelta(seconds=-30)) # 30秒前
print(datetime.datetime.now() + datetime.timedelta(seconds=40)) # 40秒后
current_time = datetime.datetime.now()
print(current_time.replace(year=2008)) # 直接调整到2008年
print(current_time.replace(month=11)) # 直接调整到11月份
print(current_time.replace(year=1997,month=4,day=25)) # 1997-04-25 18:49:05.898601
# 将时间戳转化成时间
print(datetime.date.fromtimestamp(1232132131)) # 2009-01-17
5.8ランダムモジュール
乱数を生成
import random
# 随机生成小数
n1 = random.random() #随机生成0-1范围内的小数
# 自定义范围的小数
n2 = random.uniform(1,4) #可用于发红包
# 随机整数
n3 = random.randint(1,9) #自定义范围内的整数, 1 <= n3 <= 9
n4 = random.randrange(1, 10, 2) #[2,4,6,8]范围内的偶数,1 <= n4 < 10范围内的偶数
# 随机选择一个返回值
n5 = random.choice([1,'23',['a','c']]) #返回列表长得一个元素
n6 = random.sample((1,'23',['a','c']),2) #随机返回列表中的两个组合,原序列不变,返回值顺序不定
n7 = random.sample('12345',3) #原序列不变,返回值顺序不定
# 这里的范围必须是有序类型的数据:Population must be a sequence or set,不能是字典和int类型
# 打乱列表顺序,仅限列表
li = [1,2,3,4,5,6]
random.shuffle(li)
print(li)
運動] [チェックコード4を生成します
import random
def auth_num():
s = ''
for i in range(4):
num = random.randint(0,9)
alp = chr(random.randint(65,90))
ALP = chr(random.randint(97,122)) #chr的作用Return a Unicode string of one character with ordinal i
add = random.choice([num,alp,ALP])
s += str(add)
return s
code = auth_num()
print(code)