真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python3教程:在python/Shell/MySQL中時間獲取與格式轉(zhuǎn)換的方法總結(jié)

時間的獲取及時間各格式間的轉(zhuǎn)換是比較常用的操作,但一是多種語言經(jīng)常容易弄混,二是同一種語言同一個功能可能有不同的實現(xiàn)函數(shù),導致每次處理時間經(jīng)常要百度所以來記錄一下。

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領(lǐng)域包括:成都做網(wǎng)站、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的南和網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

另外個人真不喜歡同樣功能有多種寫法的形式,從理想角度說多種實現(xiàn)方式讓不同的人都能以其喜歡的方式進行編寫;但實際上當你忘記的時候,你就總要懷疑是不是這么寫、可不可以這么寫、到底怎么寫,然后到網(wǎng)上看又是五花八門的寫法,這是個很耗費精力的事情。這也是我不喜歡Ruby的原因。

一、Python時間操作

1 獲取時間對象

import time
import datetime

# 獲取當前時間對象
# 返回形如datetime.datetime(2020, 2, 29, 10, 34, 36, )對象
# 可通過對象的year、month、day、hour、minute、second、microsecond、tzinfo等屬性獲取各部分的信
datetime.datetime.now()
datetime.datetime.today()

# 獲取昨天時間對象。當前時間減去一天的時間差即可
# 接受參數(shù)weeks,days,hours,seconds,minutes,microseconds,milliseconds,且可同時使用
# 返回形如datetime.datetime(2020, 2, 28, 10, 37, 31, )
datetime.datetime.now() - datetime.timedelta(days=1)

# 獲取明天時間對象。當天的時間加上一天的時間差即可
# 接受參數(shù)weeks,days,hours,seconds,minutes,microseconds,milliseconds,且可同時使用
# 返回形如datetime.datetime(2020, 3, 1, 10, 37, 31, )
datetime.datetime.now() - datetime.timedelta(days=1)

2 時間對象與給定格式轉(zhuǎn)換

import time
import datetime

# 時間對象輸出成指定格式
# 輸出形如2020-02-29 11:03:29(-空格和:等符號可以換成其他任意自己想要的字符)
obj = datetime.datetime.now()
obj.strftime("%Y-%m-%d %H:%M:%S")
obj.__format__("%Y-%m-%d %H:%M:%S")

# 給定時間轉(zhuǎn)成時間對象
datetime.datetime.strptime("2020-02-29 11:03:29", "%Y-%m-%d %H:%M:%S")

3 時間對象與時間戳轉(zhuǎn)換

import time
import datetime

# 時間對象轉(zhuǎn)成時間戳
# 結(jié)果形如.
obj = datetime.datetime.now()
obj.timestamp()

# 時間戳轉(zhuǎn)成時間對象
datetime.datetime.fromtimestamp(time.time())

4 時間的比較

import time
import datetime

# 單純地比較大小可以直接比較。
# 執(zhí)行太快了兩個對象是一樣的,所以睡眠一下
obj_a = datetime.datetime.now()
time.sleep(1)
obj_b = datetime.datetime.now()
if obj_b > obj_a:
    print("yes")

# 要獲取具體時間差,可將轉(zhuǎn)成時間戳再相減
obj_a = datetime.datetime.now()
time.sleep(1)
obj_b = datetime.datetime.now()
if obj_b > obj_a:
    late = obj_b.timestamp() - obj_a.timestamp()
    print(f"obj_b is late than b: {late}")

二、Shell時間操作

1 基礎(chǔ)操作

# 獲取當前時間,并輸出成指定格式
# 有引號是因為有空格,沒有空格用不用引號都一樣
date +"%Y-%m-%d %H:%M:%S"

# 獲取昨天時間,并輸出成指定格式
date -d "yesterday" +"%Y-%m-%d %H:%M:%S"
date -d "last-day" +"%Y-%m-%d %H:%M:%S"
date -d "1 day ago" +"%Y-%m-%d %H:%M:%S"
date -d "-1 days" +"%Y-%m-%d %H:%M:%S"

# 獲取明天日期,并輸出成指定格式
date -d "tomorrow" +"%Y-%m-%d %H:%M:%S"
date -d "next-day" +"%Y-%m-%d %H:%M:%S"
date -d "+1 days" +"%Y-%m-%d %H:%M:%S"

# 將給定日期輸出成指定格式
date -d "2020-07-22 09:09:09" +"%H:%M:%S %Y-%m-%d"# 將timestamp轉(zhuǎn)成指定日期格式date -d @  +"%Y-%m-%d %H:%M:%S"

2 date月份設置成中/英文問題

%b表示以系統(tǒng)所設置語言的月份簡寫,如"Aug";%B當?shù)卣Z言全稱,如"August"。

但這個“系統(tǒng)設置語言”到底是由哪個配置設置呢?之前以為是LANG,LANG設置成"zh_CN.UTF-8"就是中文,date +"%b"就會輸出“8月”;設置成"en_US.UTF-8"就是英文,date +"%b"就會輸出“Aug”。

之前也收到反饋說LANG設置成了"en_US.UTF-8",date +"%b"仍輸出中文“8月”,并不太上心,但今天自己也遇到了這個情況。

通過查找資料和實驗,發(fā)現(xiàn)環(huán)境變量的優(yōu)先級是LC_ALL > LC_*(包括決定月分顯示語言的LC_TIME)> LANG。所以當LC_ALL設置成"zh_CN.UTF-8"時去設置LANG為"en_US.UTF-8",date +"%b"仍輸出中文。

# 月份以英文形式輸出。%b縮寫,%B全稱
LC_ALL=C date -d "2020-07-22 09:09:09" +"%b"

# 查看各影響編碼的環(huán)境變量的當前值
locale

# 查看系統(tǒng)支持的全部編碼
locale -a

三、MySQL時間操作

1 MySQL獲取時間

'''
學習中遇到問題沒人解答?小編創(chuàng)建了一個Python學習交流群:
尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書!
'''
# 獲取當天日期
select curdate();
獲取昨天日期
select date_sub(curdate(),interval 1 day);
獲取明天日期
select date_sub(curdate(),interval -1 day);

# 獲取當前時間
select now();
# 獲取一個小前時間
select date_sub(now(),interval 1 hour);
# 獲取一個小時后時間
select date_sub(now(),interval -1 hour);
# 獲取昨天時間
select date_sub(now(),interval 1 day);
# 獲取明天時間
select date_sub(now(),interval -1 day);

2 時間輸出成指定格式

# 當前時間輸出成給定格式
select date_format(now(),"%Y%m%d %H:%i:%S");

# 給定時間輸出成指定格式
select date_format(date_sub(curdate(),interval 1 day),"%Y%m%d");
select date_format(date_sub(now(),interval 1 hour),"%Y%m%d %H:%i:%S");

3 獲取時間戳

select unix_timestamp(now());

四、附Python時間格式

Python、Shell、MySQL之間格式雖然大多是相同的,但小部分還是有區(qū)別,自己使用時要注意。比如分鐘Python和Shell是"%H",但MySQL是"%i"。


文章名稱:Python3教程:在python/Shell/MySQL中時間獲取與格式轉(zhuǎn)換的方法總結(jié)
分享路徑:http://weahome.cn/article/dsogjeg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部