C#のDateTime.SpecifyKind()メソッドとは?使い方とサンプルコードを解説
C#のDateTime.SpecifyKind()メソッドは、指定されたDateTimeオブジェクトと同じタイマー刻み(Ticks)の値を持つ新しいDateTimeオブジェクトを作成し、その日時が「ローカル時刻」「協定世界時(UTC)」「いずれでもない」のどれであるかを、DateTimeKindの値に基づいて指定するためのメソッドです。
このメソッドは、既存の日時データに対して種類(Kind)の情報だけを付け替えたい場合に便利です。なお、元のDateTimeオブジェクト自体は変更されず、新しいインスタンスが返される点に注意してください。
構文
DateTime.SpecifyKind()メソッドの構文は以下のとおりです。
public static DateTime SpecifyKind (DateTime d, DateTimeKind kind);
パラメータ
- d: 種類(Kind)を指定したい元のDateTimeオブジェクト
- kind: 新しいオブジェクトがローカル時刻、UTC、またはどちらでもないことを示すDateTimeKind列挙体の値
DateTimeKindの主な値
- DateTimeKind.Local: ローカル時刻を表す
- DateTimeKind.Utc: 協定世界時(UTC)を表す
- DateTimeKind.Unspecified: ローカル時刻かUTCかが指定されていないことを表す
使用例1: ローカル時刻として指定する
まず、DateTime.SpecifyKind()メソッドを使って、日時をローカル時刻として指定する例を見てみましょう。
using System;
using System.Globalization;
public class Demo {
public static void Main() {
DateTime d = new DateTime(2019, 10, 11, 11, 10, 42);
DateTime res = DateTime.SpecifyKind(d, DateTimeKind.Local);
Console.WriteLine("Kind = " + res.Kind);
}
}出力結果
上記のコードを実行すると、以下のような出力が得られます。
Kind = Local
使用例2: UTCとして指定する
次に、同じ日時を協定世界時(UTC)として指定する例を見てみましょう。
using System;
public class Demo {
public static void Main() {
DateTime d = new DateTime(2019, 11, 25, 10, 20, 35);
DateTime res = DateTime.SpecifyKind(d, DateTimeKind.Utc);
Console.WriteLine("Kind = " + res.Kind);
}
}出力結果
上記のコードを実行すると、以下のような出力が得られます。
Kind = Utc
まとめ
DateTime.SpecifyKind()メソッドを使用すると、タイマー刻み(Ticks)の値を変更することなく、DateTimeオブジェクトの時刻の種類(Kind)だけをLocal、Utc、Unspecifiedのいずれかに設定できます。日付や時刻の値そのものは変換されず、あくまで「種類」の情報を付け直すメソッドである点を理解しておきましょう。実際に時刻を変換したい場合は、ToUniversalTime()メソッドやToLocalTime()メソッドと組み合わせて使用します。
-
C#のDateTime.AddHours()メソッドの使い方を徹底解説
C#のDateTime.AddHours()メソッドは、指定した時間数を現在のDateTimeインスタンスの値に加算するためのメソッドです。重要なポイントとして、このメソッドは元のDateTimeオブジェクトを変更せず、計算結果を含む新しいDateTimeオブジェクトを返します。基本仕様DateTimeは不変(イミュータブル)な構造体のため、AddHours()を呼び出しても元の値は変わりません。戻り値は加算後の日時を持つ新しいDateTimeです。構文public DateTime AddHours (double hrs);パラメータ hrs には加算する時間数を指定します。負の値を渡すこ
-
C#のDateTime.AddDays()メソッドの使い方を徹底解説!日付に日数を加算する方法
C#のDateTime.AddDays()メソッドは、現在のDateTimeインスタンスの値に指定した日数を加算するためのメソッドです。このメソッドは元のDateTimeオブジェクトを変更するのではなく、計算結果として新しいDateTimeオブジェクトを返します。そのため、戻り値を受け取る変数が必要になる点に注意しましょう。 基本構文 DateTime.AddDays()メソッドの構文は以下のとおりです。 public DateTime AddDays (double days); 引数 days には加算したい日数をdouble型で指定します。負の値を渡すことで、日付を減算(過去の日付に移動