Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonを使用してYYYY-MM-DD形式で日付を再フォーマットするプログラム


「DayMonthYear」形式の日付文字列があり、日が[1st、2nd、...、30th、31st]のようになり、月が[Jan、Feb、... Nov、Dec]形式であるとします。年は1900〜2100の範囲の4桁の数値であるため、この日付を「YYYY-MM-DD」形式に変換する必要があります。

したがって、入力がdate ="23rd Jan 2021"のような場合、出力は2021-01-23

になります。

これを解決するには、次の手順に従います-

  • 月:=["Jan"、 "Feb"、 "Mar"、 "Apr"、 "May"、 "Jun"、 "Jul"、 "Aug"、 "Sep"、 "Oct"、 "Nov"、 "Dec "]

  • string:=日付を分割し、[日、月、年]形式のようなリストを作成します

  • 年:=​​string [2]

  • day:=string[0]最後の2文字を削除する

  • 日が1桁の数字の場合、

    • 「0」を日と連結します

  • 月:=月リストを使用して文字列[1]を月に変換

  • 月が1桁の数字の場合、

    • 「0」を月と連結します

  • 「YYYY-MM-DD」形式で(年、月、日)を返す

例(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

  1. Unittestを使用したPythonプログラムでのユニットテスト

    この記事では、Python3.xで利用可能なunittestモジュールを使用して、ソフトウェアテストの基本について学習します。またはそれ以前。自動化、テストのセットアップと終了コードの共有、およびすべてのフレームワークの独立したテストが可能になります。 単体テストでは、さまざまなオブジェクト指向の概念を使用します。ここでは、主に使用されるいくつかの概念について説明します。 テストケース −これは、特定の入力セットに従った応答固有の基本クラスです。この操作を実装するには、ユニットテストの基本クラス、つまり「TestCase」を使用します。 テストスイート −テストケースをまとめて実

  2. Python 3で辞書を使用して文字列をフォーマットするにはどうすればよいですか?

    辞書を使用して文字列を補間できます。これらには、%と変換文字の間の括弧内にキーを指定する必要がある構文があります。たとえば、フロートがキー「cost」に格納されていて、それを「$ xxxx.xx」としてフォーマットする場合は、表示する場所に「$%(cost).2f」を配置します。 。 辞書で文字列フォーマットを使用して文字列を補間し、数値をフォーマットする例を次に示します。 >>>print('%(language)s has %(number)03d quote types.' % {'language': "Python&quo