スライドショー

【C#入門】DateTimeで日付の処理をする方法総まとめ(ToString/parse)

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

C#には日時(日付)を扱うためのDateTime構造体があります。日時に関する様々な操作ができるので、上手く活用してください。この記事では、

  • DateTime構造体とは
  • 現在時刻を取得する方法
  • ToStringで日時(日付)を文字列に変換する方法
  • 日時の文字列をDateTimeに変換する方法
  • 日付を比較するCompareToと比較演算子の使い方

などの基本的な内容から、応用的な使い方に関しても解説していきます。今回はこれらの方法を覚えるために、DateTime構造体のさまざまな使い方をわかりやすく解説します!

DateTime構造体とは

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

フォーマットで表示形式の指定や、区切り文字を指定したりすることができます。それ以外にも、日時に関する様々な操作をすることができます。

現在時刻を取得する方法(DateTime.Now/UtcNow)

ここでは、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

さらに詳しい使い方は次の記事で解説しているので、ぜひ確認してください。

【C#入門】現在時刻を取得する方法(DateTime.Now/UtcNow)
更新日 : 2019年7月12日

ToStringで日時(日付)を文字列に変換する方法

DateTimeの日時をフォーマットを指定して文字列に変換するには、ToStringメソッドの引数にフォーマットを指定します。年月日は「yyyy/MM/dd」のように指定します。日時は「HH:mm:ss」のように指定します。

月は大文字の「MM」で分が小文字の「mm」であることに注意してください。何時かを示す「HH」は、大文字だと24時間表記で、小文字だと12時間表記になります。日時をフォーマットを指定して文字列に変換する方法を次のプログラムで確認してみましょう。

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/04/26 17:33:55
2018年04月26日 17時33分55秒

さらに詳しい使い方は次の記事で解説しているので、ぜひ確認してください。

【C#入門】DateTime.ToStringで日時(日付)を文字列に変換する方法
更新日 : 2019年4月26日

日時の文字列をDateTimeに変換する方法

日時の文字列をDateTimeに変換する方法(Parse/ParseExact)

ここでは、Parseメソッドで文字列をDateTime型に変換する方法を解説します。Parseメソッドは日時の文字列をDateTime型に変換して戻り値として返します。

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

using System;

namespace Sample
{
    class Sample
    {
        static void Main()
        {
            string strTime = "2018/05/01 12:34:56";

            DateTime dTime = DateTime.Parse(strTime);
            Console.WriteLine(dTime);

            strTime = "2018/05/01";
            dTime = DateTime.Parse(strTime);
            Console.WriteLine(dTime);

            strTime = "12:34:56";
            dTime = DateTime.Parse(strTime);
            Console.WriteLine(dTime);

            Console.ReadKey();
        }
    }
}

実行結果:

2018/05/01 12:34:56
2018/05/01 0:00:00
2018/05/04 12:34:56

さらに詳しい使い方は次の記事で解説しているので、ぜひ確認してください。

【C#入門】日時の文字列をDateTimeに変換する方法(Parse/ParseExact)
更新日 : 2019年7月12日

日時の文字列とDateTimeの変換チェック(TryParse/TryParseExact)

ここでは、TryParseメソッドの使い方を解説します。TryParseメソッドは第1引数に変換する文字列を指定し、第2引数にDateTime型に変換後の日時が格納されます。戻り値は変換可能かどうかの判定を返します。

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

using System;

namespace Sample
{
    class Sample
    {
        static void Main()
        {
            string strTime = "2018/05/01 12:34:56";
            DateTime dateTime;

            if (DateTime.TryParse(strTime, out dateTime))
            {
                Console.WriteLine("変換できました!");
                Console.WriteLine(dateTime);
            }
            else
            {
                Console.WriteLine("変換できません!");
            }

            Console.ReadKey();
        }
    }
}

実行結果:

変換できました!
2018/05/01 12:34:56

さらに詳しい使い方は次の記事で解説しているので、ぜひ確認してください。

【C#入門】文字列とDateTimeの変換チェック(TryParse/TryParseExact)
更新日 : 2019年5月21日

日付を比較するCompareToと比較演算子の使い方

ここでは、DateTime型の日付をCompareToメソッドで比較する方法を解説します。CompareToメソッドで日時を比較する方法を次のプログラムで確認してみましょう。

using System;

namespace Sample
{
    class Sample
    {
        static void Main()
        {
            DateTime time1 = DateTime.Now;
            DateTime time2 = time1.AddHours(1);

            Console.WriteLine("time1 = " + time1);
            Console.WriteLine("time2 = " + time2);

            switch (time1.CompareTo(time2))
            {
                case -1:
                    Console.WriteLine("time1はtime2より前の日時です");
                    break;
                case 0:
                    Console.WriteLine("time1とtime2は同じ日時です");
                    break;
                case 1:
                    Console.WriteLine("time1はtime2より後の日時です");
                    break;
            }

            Console.ReadKey();
        }
    }
}

実行結果:

time1 = 2018/05/03 16:30:46
time2 = 2018/05/03 17:30:46
time1はtime2より前の日時です

さらに詳しい使い方は次の記事で解説しているので、ぜひ確認してください。

【C#入門】日付を比較するCompareToと比較演算子の使い方
更新日 : 2019年5月2日

まとめ

いかがでしたか?今回はDateTime構造体で日時(日付)を扱う方法をまとめて解説しました。日付と文字列の変換や、日時の比較など必要に応じて使い分けてくださいね。

もし、DateTime構造体の使い方を忘れてしまったらこの記事を確認してください!

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

中沢 丈

中沢 丈

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

連絡先はこちらです。
[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説