web-dev-qa-db-ja.com

Moment JS-UTCを解析し、ローカルに変換、またはその逆

私はドキュメンテーションを調べましたが、進む方法について少し混乱しています。同様の質問がありますが、形式で受け取った特定の日付の解析、およびローカル日付とUTC日付の切り替えについては言及していません。

  1. 私はローカルの日時、ローカルの日時形式を受け取り、それから特定の形式でutc datetimeを生成する必要があります。これは私がそれを行うべきだと思う方法です。 moment(dateTime,localDateTimeFormat).utc().format(specifiedFormat);

  2. 特定の形式でutc datetimeを受け取り、特定の形式でロケール固有のdatetimeを生成する必要があります。どうすればいいのですか? moment.utc(utcDateTime, utcDateTimeFormat).toDate();は、私が信じているJavaScriptの日付を教えてくれます。どうやってフォーマットしますか?生成されたDateオブジェクトを使用して新しい瞬間を作成する必要がありますか?

もう1つできることは、タイムゾーンを取得してからフォーマットすることです。ここで間違ったルートを取っているのだろうか。助けてください。

39
Chiranjib
  • 項目1-はい、それはそれを行う1つの方法です。ただし、出力形式がちょうどISO8601 UTCタイムスタンプになる場合は、toISOStringを元の瞬間に直接呼び出すことができます。 UTCは出力によって暗示されるため、utc()を再度呼び出すことは冗長です。

  • アイテム2-utc()関数と同様に、local()関数もあります。 momentオブジェクトを取得したら、toDateまたはformat、またはドキュメントで説明されている他の関数を使用できます。いいえ、生成された日付オブジェクトを使用して新しい瞬間を作成する必要はありません。

    moment.utc(utcDateTime, utcDateTimeFormat).local().format(specifiedFormat)
    

    繰り返しますが、ここで物事を行うには複数の方法があります。 utcDateTimeがすでにISO8601形式であり、Zまたは-01:00のようなオフセットのいずれかを含む場合、それが考慮され、これを簡単に行うことができます。

    moment(utcDateTime).format(specifiedFormat)
    
  • タイムゾーンについて最後に言及した項目では、何を尋ねているかを伝えるのは困難です。具体的な詳細を詳しく説明する必要があります新しい質問で

74