1. ホーム
  2. javascript

[解決済み] date-fnsで日付をフォーマットするには?

2022-03-05 14:35:25

質問

日付の書式設定に 日付-fns が、何度も失敗してしまいます。基本的に、私はmomentJSでうまく動作しているが、date-fnsでは動作しない。

これが私の日付です。

"10-13-20" // month, day, and year

これでmomentJSを使うと、このようにうまく動作します。

let result = moment("10-13-20", 'MM-DD-YY').format()
// result = "2020-10-13T00:00:00-06:00"

で、同じことをやろうとすると 日付-fns が、うまくいきません。どなたか正しい方向を示していただけませんか?ありがとうございました。

let result = format(new Date("10-13-20"), 'MM-DD-YY') // Not working

解決方法は?

ご覧のように moment リブでは,結果を得るために2つのステップが必要です.すなわち,文字列をパースして Date オブジェクトを作成し、日付オブジェクトを文字列にフォーマットします。

あなたのコード format(new Date("10-13-20"), 'MM-DD-YY')format ステップで、日付オブジェクトを次のような書式テンプレートで文字列に変換してみます。 MM-DD-YY . しかし、あなたの日付オブジェクトは正しくありません。

解決策は、同じことを moment リブです。

  1. 日付文字列を解析して日付オブジェクトにします。使用方法 パース

    const dateString = '10-13-20';
    const date = parse(dateString, 'MM-dd-yy', new Date()) // not MM-DD-YY
    
    
  2. 日付オブジェクトを結果文字列にフォーマットします。使用方法 フォーマット

    const result = format(date, "yyyy-MM-dd'T'HH:mm:ss.SSSxxx")
    console.log(result)
    
    

    結果は次のようになります(私のタイムゾーンでの現時点の結果と同じです)。

     2020-10-13T00:00:00.000+09:00