【C#入門】現在時刻を取得する方法(DateTime.Now/UtcNow)

いま何時? 現在時刻を取得する方法

こんにちは! エンジニアの中沢です。

C#では現在の日時を取得するために、DateTime構造体の「Nowプロパティ」を使います。日時はフォーマットを指定して取得することもできるので、上手く活用してください。

この記事では、

  • DateTime構造体とは
  • DateTime.Nowプロパティで現在時刻を取得する方法
  • 年、月、日、時、分、秒、ミリ秒を取得する方法

という基本的な内容から、

  • フォーマットを指定して取得する方法
  • UtcNowプロパティでUTC(協定世界時)の時刻を取得する方法

などの応用的な使い方に関しても解説していきます。

今回はこれらの方法を覚えるために、現在時刻を取得するさまざまな使い方をわかりやすく解説します!

目次

DateTime構造体とは

DateTime構造体は、日時(日付)を扱うときに使う構造体です。現在の日時を取得したり、フォーマットを指定して日時を文字列に変換して表示することなどができます。

フォーマットで表示形式の指定や、区切り文字を指定したりすることができます。

DateTime.Nowプロパティで現在時刻を取得する方法

ここでは、DateTime.Nowプロパティで現在時刻を取得する方法を解説します。現在時刻を取得するには、DateTime.Nowプロパティを使用するだけです。現在時刻はDateTime型で取得されます。

次のプログラムで確認してみましょう。

using System;

namespace Sample
{
    class Sample
    {
        static void Main()
        {
            DateTime dt = DateTime.Now;
            Console.WriteLine(dt);

            Console.ReadKey();
        }
    }
}

実行結果:

2018/05/04 15:25:39

このようにして現在の日時を取得することができました。

年、月、日、時、分、秒、ミリ秒を取得する方法

ここでは、現在の日時から「年、月、日、時、分、秒、ミリ秒」を取得する方法を解説します。「年」を取得するには「Year」、「月」を取得するには「Month」のように対応するプロパティがあるので、それを使って取得することができます。

次のプログラムで確認してみましょう。

using System;

namespace Sample
{
    class Sample
    {
        static void Main()
        {
            DateTime dt = DateTime.Now;
            Console.WriteLine(dt);

            Console.WriteLine(dt.Year + "年");
            Console.WriteLine(dt.Month + "月");
            Console.WriteLine(dt.Day + "日");
            Console.WriteLine(dt.Hour + "時");
            Console.WriteLine(dt.Minute + "分");
            Console.WriteLine(dt.Second + "秒");
            Console.WriteLine(dt.Millisecond + "ミリ秒");

            Console.ReadKey();
        }
    }
}

実行結果:

2018/05/04 15:37:44
2018年
5月
4日
15時
37分
44秒
425ミリ秒

このようにして、ミリ秒まで取得することができました。

フォーマットを指定して取得する方法

フォーマットを指定するには、DateTime構造体のToStringメソッドを使います。フォーマットは、「”yyyy/MM/dd HH:mm:ss”」のように年月日と日時を指定します。

次のプログラムで確認してみましょう。

using System;

namespace Sample
{
    class Sample
    {
        static void Main()
        {
            DateTime dt = DateTime.Now;

            string result = dt.ToString("yyyy/MM/dd HH:mm:ss");
            Console.WriteLine(result);

            result = dt.ToString("yyyy年MM月dd日 HH時mm分ss秒");
            Console.WriteLine(result);

            Console.ReadKey();
        }
    }
}

実行結果:

2018/05/04 15:39:24
2018年05月04日 15時39分24秒

このようにしてフォーマットを指定して日時を取得することができました。DateTime構造体のToStringメソッドの詳しい使い方はこちらの記事で解説しているので、ぜひ確認してください。

UtcNowプロパティでUTC(協定世界時)の時刻を取得する方法

ここでは、UtcNowプロパティUTC(協定世界時)の時刻を取得する方法を解説します。UtcNowプロパティはNowプロパティと同様に使うことができます。

次のプログラムで確認してみましょう。

using System;

namespace Sample
{
    class Sample
    {
        static void Main()
        {
            DateTime dt = DateTime.Now;
            Console.WriteLine("JST:" + dt);

            dt = DateTime.UtcNow;
            Console.WriteLine("UTC:" + dt);

            Console.ReadKey();
        }
    }
}

実行結果:

JST:2018/05/04 15:42:22
UTC:2018/05/04 6:42:22

このようにして、JSTとUTCを比較して取得することができました。

まとめ

いかがでしたか?今回はNowプロパティで現在の日時を取得する方法を解説しました。

現在時刻はミリ秒まで取得できたり、フォーマットを指定できるのでぜひ活用してくださいね。もし、現在の日時を取得する方法を忘れてしまったらこの記事を確認してください!

この記事を書いた人

フリーランスエンジニア。
システム開発からコンテンツ作成まで幅広く対応します。

連絡先はこちらです。
ntakeshi@sejuku.net

目次