目次
- 1 現在の日付と時刻を取得する
- 2 日付の年、月、日を取得する
- 3 時刻の時、分、秒、ミリ秒を取得する
- 4 日時の日付部分を取得する
- 5 日付の曜日を取得する
- 6 日付の年間積算日を取得する
- 7 日時の時刻を取得する
- 8 日付に年を加算する
- 9 日付に月を加算する
- 10 日付に日を加算する
- 11 日時に時を加算する
- 12 日時に分を加算する
- 13 日時に秒を加算する
- 14 日時にミリ秒を加算する
- 15 日時に時間間隔(TimeSpan)を加算する
- 16 日時を減算する
- 17 日付を比較する
- 18 日時が同じであるかどうかを取得する
- 19 指定した年月の日数を取得する
- 20 閏年かどうかを取得する
- 21 文字列形式の日付または日時(String)をDateTimeに変換する
現在の日付と時刻を取得する
現在の日時を取得するにはDateTime構造体のNow静的プロパティを使用します。
現在の日付(今日の日付)を取得するにはDateTime構造体のToday静的プロパティを使用します。現在の日時を世界協定時刻(UTC)で表した日時で取得するにはDateTime構造体のUtcNow静的プロパティを使用します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// 現在の日時を取得 DateTime now = DateTime.Now; // 現在の日付を取得 DateTime today = DateTime.Today; // 現在のUTC日時を取得 DateTime utcNow = DateTime.UtcNow; Console.WriteLine(now); Console.WriteLine(today); Console.WriteLine(utcNow); /* 2019/12/26 15:19:02 2019/12/26 0:00:00 2019/12/26 6:19:02 */ |
日付の年、月、日を取得する
日付の年を取得するにはDateTime構造体のYearプロパティを使用します。
日付の月を取得するにはDateTime構造体のMonthプロパティを使用します。
日付の日を取得するにはDateTime構造体のDayプロパティを使用します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
DateTime dateTime = new DateTime(2020, 7, 24); // 年を取得する int year = dateTime.Year; // 月を取得する int month = dateTime.Month; // 日を取得する int day = dateTime.Day; Console.WriteLine(year); Console.WriteLine(month); Console.WriteLine(day); /* 2020 7 24 */ |
時刻の時、分、秒、ミリ秒を取得する
時刻の時を取得するにはDateTime構造体のHourプロパティを使用します。
時刻の分を取得するにはDateTime構造体のMinuteプロパティを使用します。
時刻の秒を取得するにはDateTime構造体のSecondプロパティを使用します。
時刻のミリ秒を取得するにはDateTime構造体のMillisecondプロパティを使用します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
DateTime dateTime = new DateTime(2020, 7, 24, 12, 34, 56, 789); // 時を取得する int hour = dateTime.Hour; // 分を取得する int minute = dateTime.Minute; // 秒を取得する int second = dateTime.Second; // ミリ秒を取得する int millisecond = dateTime.Millisecond; Console.WriteLine(hour); Console.WriteLine(minute); Console.WriteLine(second); Console.WriteLine(millisecond); /* 12 34 56 789 */ |
日時の日付部分を取得する
日時の日付部分を取得するにはDateTime構造体のDateプロパティを使用します。
1 2 3 4 5 |
DateTime dateTime = new DateTime(2020, 7, 24, 12, 34, 56, 789); // 時を取得する DateTime date = dateTime.Date; Console.WriteLine(date); // 2020/07/24 0:00:00 |
日付の曜日を取得する
日付の曜日を取得するにはDateTime構造体のDayOfWeekプロパティを使用します。
DayOfWeekプロパティは曜日を表すDayOfWeek列挙型の定数を返します。
1 2 3 4 5 |
DateTime dateTime = new DateTime(2020, 7, 24); // 曜日を取得する DayOfWeek dayOfWeek = dateTime.DayOfWeek; Console.WriteLine(dayOfWeek); // Friday |
DayOfWeek列挙型には次の定数があります。
名前 | 値 | 説明 |
---|---|---|
Sunday | 0 | 日曜日 |
Monday | 1 | 月曜日 |
Tuesday | 2 | 火曜日 |
Wednesday | 3 | 水曜日 |
Thursday | 4 | 木曜日 |
Friday | 5 | 金曜日 |
Saturday | 6 | 土曜日 |
日付の年間積算日を取得する
日付の年間積算日を取得するにはDayOfYearプロパティを使用します。
1 2 3 4 5 |
DateTime dateTime = new DateTime(2020, 7, 24); // 年間積算日を取得する int dayOfYear = dateTime.DayOfYear; Console.WriteLine(dayOfYear); // 206 |
DayOfYearプロパティは、1から366までの間の積算日を返します。
日時の時刻を取得する
日時の時刻を取得するにはTimeOfDayプロパティを使用します。
1 2 3 4 5 |
DateTime dateTime = new DateTime(2020, 7, 24, 12, 34, 56, 789); // 時刻を取得する TimeSpan timeOfDay = dateTime.TimeOfDay; Console.WriteLine(timeOfDay); // 12:34:56.7890000 |
日付に年を加算する
日付に年を加算するにはDateTime構造体のAddYearsメソッドを使用します。
1 2 3 4 5 |
DateTime dateTime1 = new DateTime(2020, 7, 24); // 年を2加算する DateTime dateTime2 = dateTime1.AddYears(2); Console.WriteLine(dateTime2); // 2022/07/24 0:00:00 |
日付に月を加算する
日付に月を加算するにはDateTime構造体のAddMonthsメソッドを使用します。
1 2 3 4 5 |
DateTime dateTime1 = new DateTime(2020, 7, 24); // 月を-3加算する(3減算する) DateTime dateTime2 = dateTime1.AddMonths(-3); Console.WriteLine(dateTime2); // 2020/04/24 0:00:00 |
日付に日を加算する
日付に日を加算するにはDateTime構造体のAddDaysメソッドを使用します。
1 2 3 4 5 |
DateTime dateTime1 = new DateTime(2020, 7, 24); // 日を4加算する DateTime dateTime2 = dateTime1.AddDays(4); Console.WriteLine(dateTime2); // 2020/07/28 0:00:00 |
日時に時を加算する
日時に時を加算するにはDateTime構造体のAddHoursメソッドを使用します。
1 2 3 4 5 |
DateTime dateTime1 = new DateTime(2020, 7, 24, 12, 34, 56, 789); // 時を2加算する DateTime dateTime2 = dateTime1.AddHours(2); Console.WriteLine(dateTime2); // 2020/07/24 14:34:56 |
日時に分を加算する
日時に分を加算するにはDateTime構造体のAddMinutesメソッドを使用します。
1 2 3 4 5 |
DateTime dateTime1 = new DateTime(2020, 7, 24, 12, 34, 56, 789); // 分を-3加算する(3減算する) DateTime dateTime2 = dateTime1.AddMinutes(-3); Console.WriteLine(dateTime2); // 2020/07/24 12:31:56 |
日時に秒を加算する
日時に秒を加算するにはDateTime構造体のAddSecondsメソッドを使用します。
1 2 3 4 5 |
DateTime dateTime1 = new DateTime(2020, 7, 24, 12, 34, 56, 789); // 秒を2加算する DateTime dateTime2 = dateTime1.AddSeconds(4); Console.WriteLine(dateTime2); // 2020/07/24 12:35:00 |
日時にミリ秒を加算する
日時にミリ秒を加算するにはDateTime構造体のAddMillisecondsメソッドを使用します。
1 2 3 4 5 |
DateTime dateTime1 = new DateTime(2020, 7, 24, 12, 34, 56, 789); // ミリ秒を5加算する DateTime dateTime2 = dateTime1.AddMilliseconds(5); Console.WriteLine(dateTime2.ToString("yyyy/MM/dd hh:mm:ss.fff")); // 2020/07/24 12:34:56.794 |
日時に時間間隔(TimeSpan)を加算する
日時に時間間隔(TimeSpan)を加算するにはDateTime構造体のAddメソッドを使用します。
1 2 3 4 5 6 |
DateTime dateTime1 = new DateTime(2020, 7, 24, 12, 34, 56, 789); // 1日と2時間3分4秒と5ミリ秒を加算する TimeSpan timeSpan = new TimeSpan(1, 2, 3, 4, 5); DateTime dateTime2 = dateTime1.Add(timeSpan); Console.WriteLine(dateTime2.ToString("yyyy/MM/dd HH:mm:ss.fff")); // 2020/07/25 14:38:00.794 |
日時の加算は+演算子を使用して取得することもできます。
1 2 3 4 5 |
// +演算子で加算する DateTime dateTime1 = new DateTime(2020, 7, 24, 12, 34, 56, 789); DateTime dateTime2 = dateTime1 + new TimeSpan(1, 2, 3, 4); Console.WriteLine(dateTime2); // 2020/07/25 14:38:00 |
日時を減算する
日時を減算するにはSubtractメソッドを使用します。
Subtractメソッドの引数には差し引くDateTimeのインスタンス、または差し引くTimeSpanのインスタンスが指定できます。
Subtractメソッドは引数にDateTimeのインスタンスを指定すると、2つのDateTimeの時間間隔を表すTimeSpanを返し、TimeSpanのインスタンスを指定すると、TimeSpanを差し引いたDateTimeを返します。
1 2 3 4 5 6 7 8 9 10 |
DateTime dateTime = new DateTime(2020, 7, 24, 12, 34, 56, 789); // DateTimeのインスタンスを減算する TimeSpan timeSpanSub = dateTime.Subtract(new DateTime(2020, 7, 23, 1, 2, 3, 4)); Console.WriteLine(timeSpanSub); // 1.11:32:53.7850000 // TimeSpanのインスタンスを減算する DateTime dateTimeSub = dateTime.Subtract(new TimeSpan(1, 2, 3, 4, 5)); Console.WriteLine(dateTimeSub.ToString("yyyy/MM/dd HH:mm:ss.fff")); // 2020/07/23 10:31:52.784 |
日時の減算は-演算子を使用して取得することもできます。
1 2 3 4 5 6 |
// -演算子で減算する DateTime dateTime1 = new DateTime(2020, 7, 24, 12, 34, 56, 789); DateTime dateTime2 = new DateTime(2020, 7, 23, 1, 2, 3, 4); TimeSpan timeSpan = dateTime1 - dateTime2; Console.WriteLine(timeSpan); // 1.11:32:53.7850000 |
日付を比較する
日付を比較するにはDateTime構造体のCompareToメソッドを使用するか、DateTime構造体のCompare静的メソッドを使用します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
// CompareToメソッドで日付を比較する int compare1 = new DateTime(2020, 7, 24).CompareTo(new DateTime(2020, 7, 25)); int compare2 = new DateTime(2020, 7, 24).CompareTo(new DateTime(2020, 7, 24)); int compare3 = new DateTime(2020, 7, 24).CompareTo(new DateTime(2020, 7, 23)); Console.WriteLine(compare1); Console.WriteLine(compare2); Console.WriteLine(compare3); /* -1 0 1 */ // Compare静的メソッドで日付を比較する int compare4 = DateTime.Compare(new DateTime(2020, 7, 24), new DateTime(2020, 7, 25)); int compare5 = DateTime.Compare(new DateTime(2020, 7, 24), new DateTime(2020, 7, 24)); int compare6 = DateTime.Compare(new DateTime(2020, 7, 24), new DateTime(2020, 7, 23)); Console.WriteLine(compare4); Console.WriteLine(compare5); Console.WriteLine(compare6); /* -1 0 1 */ |
CompareToメソッドはDateTimeのインスタンスが比較するDateTimeのインスタンスより前であれば-1を返し、同じであれば0を返し、後であれば1を返します。
Compare静的メソッドは比較する第1のDateTimeのインスタンスがの第2のDateTimeのインスタンスより前であれば-1を返し、同じであれば0を返し、後であれば1を返します。
日時が同じであるかどうかを取得する
2つの日時が同じであるかどうかを取得するDateTime構造体のEqualsメソッド、またはDateTime構造体のEquals静的メソッドを使用します。
1 2 3 4 5 6 7 8 9 |
// Equalsメソッドで取得する bool equals1 = new DateTime(2020, 7, 24).Equals(new DateTime(2020, 7, 24)); Console.WriteLine(equals1); // True // Equals静的メソッドで取得する bool equals2 = DateTime.Equals(new DateTime(2020, 7, 24), new DateTime(2020, 7, 24, 1, 2, 3)); Console.WriteLine(equals2); // false |
指定した年月の日数を取得する
指定した年月の日数を取得するにはDateTime構造体のDaysInMonth静的メソッドを使用します。
1 2 3 4 |
// 2020年2月の日数を取得する int days = DateTime.DaysInMonth(2020, 2); Console.WriteLine(days); // 29 |
閏年かどうかを取得する
閏年(うるうどし)かどうかを取得するにはDateTime構造体のIsLeapYear静的メソッドを使用します。
1 2 3 4 |
// 2020年が閏年かどうかを取得する bool isLeapYear = DateTime.IsLeapYear(2020); Console.WriteLine(isLeapYear); // True |
文字列形式の日付または日時(String)をDateTimeに変換する
文字列形式の日付または日時(String)をDateTimeに変換するにはDateTime構造体のParse静的メソッドを使用します。
1 2 3 4 |
// "2020/07/24"をDateTimeに変換する DateTime dateTime = DateTime.Parse("2020/07/24"); Console.WriteLine(dateTime); // 2020/07/24 0:00:00 |
DateTime構造体にはParse静的メソッドの他に、文字列形式の日付または日時の書式を指定してDateTimeに変換するParseExact静的メソッドもあります。
ParseExact静的メソッドを使用するとそのままでは日付または日時として認識できない文字列をDateTimeに変換することができます。
例えば書式が年月日の区切り文字がない「yyyyMMdd」形式の日付を変換する場合などに使用できます。
1 2 3 4 |
// "20200724"をDateTimeに変換する DateTime dateTime = DateTime.ParseExact("20200724", "yyyyMMdd", null); Console.WriteLine(dateTime); // 2020/07/24 0:00:00 |
DateTime構造体には上記の静的メソッドの他に、DateTimeに変換できるかを確認した上で変換するためのTryParse静的メソッドとTryParseExact静的メソッドが用意されています。
1 2 3 4 5 6 7 8 9 10 11 12 |
// "2020/07/24"をDateTimeに変換する if (DateTime.TryParse("2020/07/24", out DateTime dateTime)) { Console.WriteLine(dateTime); // 2020/07/24 0:00:00 } // "20200724"をDateTimeに変換する if (DateTime.TryParseExact("20200724", "yyyyMMdd", null, System.Globalization.DateTimeStyles.None, out DateTime dateTime)) { Console.WriteLine(dateTime); // 2020/07/24 0:00:00 } |