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

C#のDateTime.GetDateTimeFormats()メソッドの使い方を解説

C#のDateTime.GetDateTimeFormats()メソッドは、現在のDateTimeインスタンスの値を、標準の日時書式指定子でサポートされるすべての文字列表現に変換するためのメソッドです。このメソッドを呼び出すと、実行環境のカルチャ(CultureInfo)で定義されているさまざまな日時パターンに対応した文字列の配列(string[])が返されます。

構文

GetDateTimeFormats()メソッドの構文は以下のとおりです。

public string[] GetDateTimeFormats ()
public string[] GetDateTimeFormats (char ch);

引数chには、標準の日時書式指定文字(例:'d'、'D'、'F'など)を1文字で指定します。引数を省略した場合は、サポートされているすべての形式が返されます。

基本的な使用例

まず、引数なしでGetDateTimeFormats()メソッドを呼び出し、取得したすべての形式をコンソールに出力する例を見てみましょう。

using System;
public class Demo {
    public static void Main() {
        DateTime d = new DateTime(2019, 11, 10, 7, 20, 45);
        string[] res = d.GetDateTimeFormats();
        foreach(string s in res)
            Console.WriteLine(s);
    }
}

出力

上記のコードを実行すると、以下のように多数の形式で日時が出力されます(実際の出力内容は、実行環境のカルチャ設定によって異なります)。ここでは代表的な出力の一部を紹介します。

11/10/2019
11/10/19
2019-11-10
10-Nov-19
Sunday, November 10, 2019
November 10, 2019
Sunday, November 10, 2019 7:20 AM
November 10, 2019 7:20:45 AM
11/10/2019 7:20:45 AM
2019-11-10T07:20:45.0000000
Sun, 10 Nov 2019 07:20:45 GMT
7:20 AM
7:20:45 AM
November 2019
...

このように、短い日付形式からRFC1123形式(GMT表記)、ISO 8601形式まで、非常に多くのバリエーションが一度に取得できることがわかります。

書式指定子を指定した使用例

次に、char型の書式指定子を引数として渡す例を見てみましょう。主な標準書式指定子には、以下のようなものがあります。

  • d:短い日付パターン(Short date pattern)
  • D:長い日付パターン(Long date pattern)
  • f:完全な日付パターン+短い時刻パターン
  • F:完全な日付/時刻パターン(長い時刻)(Full date/time pattern)
  • g:一般の日付/時刻パターン(短い時刻)
  • G:一般の日付/時刻パターン(長い時刻)
  • t:短い時刻パターン
  • T:長い時刻パターン

ここでは「F」(完全な日付/時刻パターン)を指定して実行してみます。

using System;
public class Demo {
    public static void Main() {
        DateTime d = new DateTime(2019, 11, 10, 7, 20, 45);
        string[] res = d.GetDateTimeFormats('F');
        foreach(string s in res)
            Console.WriteLine(s);
    }
}

出力

上記のコードを実行すると、以下の出力が得られます。

Sunday, November 10, 2019 7:20:45 AM
Sunday, November 10, 2019 07:20:45 AM
Sunday, November 10, 2019 7:20:45
Sunday, November 10, 2019 07:20:45
November 10, 2019 7:20:45 AM
November 10, 2019 07:20:45 AM
November 10, 2019 7:20:45
November 10, 2019 07:20:45
Sunday, 10 November, 2019 7:20:45 AM
Sunday, 10 November, 2019 07:20:45 AM
Sunday, 10 November, 2019 7:20:45
Sunday, 10 November, 2019 07:20:45
10 November, 2019 7:20:45 AM
10 November, 2019 07:20:45 AM
10 November, 2019 7:20:45
10 November, 2019 07:20:45

書式指定子を指定することで、特定のパターンに対応する文字列表現だけを絞り込んで取得できます。日付の表示形式を柔軟に切り替えたい場合や、多言語対応アプリケーションでカルチャごとの書式を確認したい場合に、このメソッドは非常に便利です。

  1. C#のDateTime.AddDays()メソッドの使い方を徹底解説!日付に日数を加算する方法

    C#のDateTime.AddDays()メソッドは、現在のDateTimeインスタンスの値に指定した日数を加算するためのメソッドです。このメソッドは元のDateTimeオブジェクトを変更するのではなく、計算結果として新しいDateTimeオブジェクトを返します。そのため、戻り値を受け取る変数が必要になる点に注意しましょう。 基本構文 DateTime.AddDays()メソッドの構文は以下のとおりです。 public DateTime AddDays (double days); 引数 days には加算したい日数をdouble型で指定します。負の値を渡すことで、日付を減算(過去の日付に移動

  2. C#のDateTime.Add()メソッドとは?構文と使い方を実例付きで解説

    C#のDateTime.Add()メソッドは、指定したTimeSpanの値を現在のDateTimeインスタンスに加算し、その結果として新しいDateTimeオブジェクトを返すメソッドです。元のインスタンス自体は変更されず、計算結果が新しいオブジェクトとして生成される点が特徴です。基本構文DateTime.Add()メソッドの構文は以下の通りです。public DateTime Add (TimeSpan val);引数 val には、加算する時間間隔を表す TimeSpan を指定します。正の値を渡せば日時が進み、負の値を渡せば日時が遡ります。使用例1:日付を加算するまずは、115日分のTim