Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình định dạng lại ngày ở định dạng YYYY-MM-DD bằng Python

Giả sử chúng ta có một chuỗi ngày ở định dạng "Ngày Tháng Năm" trong đó ngày có dạng như [1, 2, ..., 30, 31], các tháng ở định dạng [Tháng 1, Tháng 2, ... Tháng 11, Tháng 12] và năm là một giá trị số có bốn chữ số trong phạm vi 1900 đến 2100, chúng tôi phải chuyển đổi ngày này thành định dạng "YYYY-MM-DD".

Vì vậy, nếu đầu vào là date ="23 tháng 1 năm 2021", thì đầu ra sẽ là 2021-01-23

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • Tháng:=["Tháng 1", "Tháng 2", "Tháng 3", "Tháng 4", "Tháng 5", "Tháng 6", "Tháng 7", "Tháng 8", "Tháng 9", "Tháng 10", "Tháng 11", "Tháng 12 "]

  • string:=chia nhỏ ngày và tạo thành một danh sách như định dạng [ngày, tháng, năm]

  • năm:=string [2]

  • day:=string [0] bằng cách xóa hai ký tự cuối cùng

  • nếu ngày là số có một chữ số thì

    • nối "0" với ngày

  • month:=chuyển đổi chuỗi [1] thành tháng bằng cách sử dụng danh sách Tháng

  • nếu tháng là số có một chữ số thì

    • nối "0" với tháng

  • return (năm, tháng, ngày) ở định dạng "YYYY-MM-DD"

Ví dụ (Python)

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

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))

Đầu vào

"23rd Jan 2021"

Đầu ra

2021-01-23