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個好友的資訊,按生日的月份和日期公升序輸出所有好友資訊。輸入說明 首先...