1. ホーム
  2. javascript

[解決済み] TypeScriptでDate/Timeをフォーマットする方法とは?

2022-03-05 21:06:56

質問

を取得するのに苦労しています。 Date オブジェクトを TypeScript でフォーマットすることができます。

私は、クラス Module と定義されているものです。

export class Module {

    constructor(public id: number, public name: string, public description: string, 
                 public lastUpdated: Date, public owner: string) { }

    getNiceLastUpdatedTime(): String {

        let options: Intl.DateTimeFormatOptions = {
            day: "numeric", month: "numeric", year: "numeric",
            hour: "2-digit", minute: "2-digit"
        };

        return this.lastUpdated.toLocaleDateString("en-GB", options) + " " + this.lastUpdated.toLocaleTimeString("en-GB", options);
    }
}

以下のコードでメソッドを呼び出すと。

    let date = new Date(1478708162000); // 09/11/2016 16:16pm (GMT)
    let module = new Module(1, "Test", "description", date, "test owner");
    console.log(module.getNiceLastUpdatedTime());

結局、コンソールに以下のように出力されました。

'9 November 2016 16:16:02 GMT'

私が見たいのは

09/11/2015 16:16

でドキュメントを拝見させていただきました。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString これはJavaScriptのAPIドキュメントですが、TypeScriptがフードの下で使っているのはこれだと確信しています)。

どうすればいい?

日付だけでなく、タイムアウトも欲しい場合 Date.toLocaleString() .

これは、私のコンソールから直接行ったものです。

> new Date().toLocaleString()
> "11/10/2016, 11:49:36 AM"

そして、ロケール文字列とフォーマット文字列を入力することで、思い通りの出力が得られます。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString