Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมสำหรับฟอร์แมตวันที่ในรูปแบบ YYYY-MM-DD โดยใช้ Python


สมมติว่าเรามีสตริงวันที่ในรูปแบบ "วัน เดือน ปี" โดยที่วันเป็นเช่น [1st, 2nd, ..., 30, 31st], เดือนอยู่ในรูปแบบ [ม.ค., ก.พ., ... พ.ย., ธ.ค.] และ year เป็นค่าตัวเลขสี่หลักในช่วง 1900 ถึง 2100 เราต้องแปลงวันที่นี้เป็นรูปแบบ "YYYY-MM-DD"

ดังนั้น หากอินพุตเป็นเหมือน date ="23 ม.ค. 2021" ผลลัพธ์จะเป็น 2021-01-23

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • เดือน:=["ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พฤษภาคม", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค." "]

  • string:=แบ่งวันที่และสร้างรายการเช่นรูปแบบ [วัน, เดือน, ปี]

  • ปี :=string[2]

  • day :=string[0] โดยการลบอักขระสองตัวสุดท้าย

  • ถ้าวันเป็นตัวเลขหลักเดียวแล้ว

    • เชื่อม "0" กับวัน

  • month :=แปลงสตริง[1] เป็นเดือนโดยใช้รายการเดือน

  • ถ้าเดือนเป็นเลขหลักเดียว

    • เชื่อม "0" กับเดือน

  • ผลตอบแทน (ปี เดือน วัน) ในรูปแบบ "ปปปป-ดด-วว"

ตัวอย่าง (Python)

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

def solve(date):
   Months=["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
   string=date.split()

   year = string[2]
   day = string[0][:-2]

   if len(day)<2:
      day="0"+day

   month = str(Months.index(string[1])+1)

   if len(month)<2:
      month="0"+month

   return "{0}-{1}-{2}".format(year, month, day)

date = "23rd Jan 2021"
print(solve(date))

อินพุต

"23rd Jan 2021"

ผลลัพธ์

2021-01-23