出生日期時間規整(time)

2021-10-25 20:15:29 字數 3521 閱讀 1693

import psycopg2

import re

import cn2an

str1=

' 2019-01-08'

str2=

'2019-1-8 00:00:00'

str3=

'2023年1月8日'

str4=

'2023年01月08日'

str5=

'2019/1/8'

str6=

'2019/01/08 00:00'

str7=

'2019-1-8'

str8 =

"2023年1"

defprocess_time

(text)

:if text:

# 處理括號和空格

text = text.replace(

" ","")

.replace(

"\n",""

) text = re.sub(

"\((.*)\)",""

,text)

text = re.sub(

"\((.*)\)",""

, text)

count =

len(text)

if count ==0:

return

"0000-00-00"

text = cn2an.transform(text)

iflen

(text)

>11:

text = text[:11

]# 2023年11月30日 最長是11位

if text.isdigit():

# 處理6位數字的(只提供年數月份日數或者月份日數年數)

if count ==6:

year =

int(text[:4

])month =

int(text[4:

6]) day =

int(text[6:

])if month >

0and month <13:

if day >

0and day <32:

return

"{}-{}-{}"

.format

(year, month, day)

month =

int(text[:2

])day =

int(text[2:

4]) year =

int(text[4:

])if month >

0and month <13:

if day >

0and day <32:

return

"{}-{}-{}"

.format

(year, month, day)

return

"0000-00-00"

# 處理4位數字的(只提供年數或者月份日數)

if count ==4:

month =

int(text[:2

])day =

int(text[2:

])if month >

0and month <13:

if day >

0and day <32:

return

"0000-{}-{}"

.format

(month, day)

return

"{}-00-00"

.format

(text)

# 處理 1987-10-3、1898.2.5、1898/2/5、2023年5月4日、2023年5月4

mat = re.match(

"(\d)[-/.,|年](\d)[-/.,|月](\d)"

, text)

if mat:

year = mat.group(1)

month = mat.group(2)

day = mat.group(3)

month =

"0"+ month if

len(month)==1

else month

day =

"0"+ day if

len(day)==1

else day

ifint(month)

>

0and

int(month)

<

13and

int(day)

>

0and

int(day)

<32:

return

"{}-{}-{}"

.format

(year, month, day)

mat = re.match(

"(\d)[-/.,|年](\d)"

, text)

if mat:

year = mat.group(1)

month = mat.group(2)

iflen

(month)==0

: month =

"00"

elif

len(month)==1

: month =

"0"+ month

ifint(month)

>

0and

int(month)

<13:

return

"{}-{}-00"

.format

(year, month)

mat = re.match(

"(\d)[-/.,|月](\d)"

, text)

if mat:

month = mat.group(1)

day = mat.group(2)

iflen

(month)==1

: month =

"0"+month

iflen(day)==0

: day =

"00"

elif

len(day)==1

: day =

"0"+ day

ifint(month)

>

0and

int(month)

<

13and

int(day)

>

0and

int(day)

<32:

return

"0000-{}-{}"

.format

(month, day)

return

"0000-00-00"

print

(process_time(

"2023年12"

))

參考:

根據出生日期計算距離生日時間

具體使用根據情況大家自己調整,此處僅供參考。根據出生日期計算生日天數 jxcore.birthwarm function value,fieldctl var dd eval new birth.substr 1,birth.length 2 var ar date dd.getmonth 1,dd...

92 按出生日期排序

92 按出生日期排序 問題描述 小明希望將自己的通訊錄按好友的生日順序排序,這樣檢視起來方便多了,也避免錯過好友的生日。為了小明的美好願望,你幫幫他吧。小明的好友資訊包含姓名 出生日期。其 生日期又包含年 月 日三部分資訊。輸入n個好友的資訊,按生日的月份和日期公升序輸出所有好友資訊。輸入說明 首先...

92 按出生日期排序

92 按出生日期排序 問題描述 小明希望將自己的通訊錄按好友的生日順序排序,這樣檢視起來方便多了,也避免錯過好友的生日。為了小明的美好願望,你幫幫他吧。小明的好友資訊包含姓名 出生日期。其 生日期又包含年 月 日三部分資訊。輸入n個好友的資訊,按生日的月份和日期公升序輸出所有好友資訊。輸入說明 首先...