JapaneseCalendar.ToDateTime メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定した時代 (年号) の指定した日時に設定されている DateTime を返します。
public:
override DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era);
public override DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era);
override this.ToDateTime : int * int * int * int * int * int * int * int -> DateTime
abstract member ToDateTime : int * int * int * int * int * int * int * int -> DateTime
override this.ToDateTime : int * int * int * int * int * int * int * int -> DateTime
Public Overrides Function ToDateTime (year As Integer, month As Integer, day As Integer, hour As Integer, minute As Integer, second As Integer, millisecond As Integer, era As Integer) As DateTime
パラメーター
- year
- Int32
年を表す整数。
- month
- Int32
月を表す 1 ~ 12 の整数。
- day
- Int32
日を表す 1 ~ 31 の整数。
- hour
- Int32
時間を表す 0 ~ 23 の整数。
- minute
- Int32
分を表す 0 ~ 59 の整数。
- second
- Int32
秒を表す 0 から 59 の整数。
- millisecond
- Int32
ミリ秒を表す 0 から 999 までの整数。
- era
- Int32
時代 (年号) を表す整数。
返品
現在の時代 (年号) の指定した日時に設定されている DateTime 。
例外
year がカレンダーでサポートされている範囲外です。
-または-
month がカレンダーでサポートされている範囲外です。
-または-
day がカレンダーでサポートされている範囲外です。
-または-
hour が 0 より小さいか、23 より大きい値です。
-または-
minute が 0 より小さいか、59 より大きい値です。
-または-
second が 0 より小さいか、59 より大きい値です。
-または-
millisecond が 0 より小さいか、999 より大きい値です。
-または-
era がカレンダーでサポートされている範囲外です。
例
次の例では、2 つの日付をインスタンス化します。 1つ目は常に現在の時代の2年目の最初の日で、2番目は大正時代の特定の日を識別します。 この例からの出力は、平成時代を現在の時代として生成されました。
using System;
using System.Globalization;
class Program
{
static void Main()
{
var cal = new JapaneseCalendar();
var jaJp = new CultureInfo("ja-JP");
jaJp.DateTimeFormat.Calendar = cal;
var date1 = cal.ToDateTime(2,1,1,0,0,0,0,JapaneseCalendar.CurrentEra);
Console.WriteLine($"Japanese calendar date: {date1.ToString("D", jaJp)}, " +
$"Gregorian calendar date: {date1.ToString("D", CultureInfo.InvariantCulture)}");
var date2 = cal.ToDateTime(6,11,7,0,0,0,0,GetEraIndex("大正"));
Console.WriteLine($"Japanese calendar date: {date2.ToString("D", jaJp)}, " +
$"Gregorian calendar date: {date2.ToString("D", CultureInfo.InvariantCulture)}");
int GetEraIndex(string eraName)
{
foreach (var ctr in cal.Eras)
if (jaJp.DateTimeFormat.GetEraName(ctr) == eraName)
return ctr;
return 0;
}
}
}
// The example displays the following output:
// Japanese calendar date: 平成2年1月1日, Gregorian calendar date: Monday, 01 January 1990
// Japanese calendar date: 大正6年11月7日, Gregorian calendar date: Wednesday, 07 November 1917
Imports System.Globalization
Module Program
Dim cal As Calendar
Dim jaJp As CultureInfo
Public Sub Main()
cal = New JapaneseCalendar()
jaJp = New CultureInfo("ja-JP")
jaJp.DateTimeFormat.Calendar = cal
Dim date1 = cal.ToDateTime(2,1,1,0,0,0,0,JapaneseCalendar.CurrentEra)
Console.WriteLine($"Japanese calendar date: {date1.ToString("D", jaJp)}, " +
$"Gregorian calendar date: {date1.ToString("D", CultureInfo.InvariantCulture)}")
Dim date2 = cal.ToDateTime(6,11,7,0,0,0,0,GetEraIndex("大正"))
Console.WriteLine($"Japanese calendar date: {date2.ToString("D", jaJp)}, " +
$"Gregorian calendar date: {date2.ToString("D", CultureInfo.InvariantCulture)}")
End Sub
Private Function GetEraIndex(eraName As String) As Integer
For Each ctr in cal.Eras
If jaJp.DateTimeFormat.GetEraName(ctr) = eraName Then Return ctr
Next
Return 0
End Function
End Module
' The example displays the following output:
' Japanese calendar date: 平成2年1月1日, Gregorian calendar date: Monday, 01 January 1990
' Japanese calendar date: 大正6年11月7日, Gregorian calendar date: Wednesday, 07 November 1917
注釈
ToDateTimeメソッドは、現在のカレンダーの日付をグレゴリオ暦の日付に変換できるため便利です。 その後、グレゴリオ暦の日付を使用して、異なるカレンダーの日付を比較したり、特定のカレンダーで同等の日付を作成したりできます。
JapaneseCalendarは天皇の治世に基づいて複数の時代 (年号) をサポートしているため、このメソッドを常に呼び出し、意図しない日付を回避し、コードの意図を明確にするために、時代 (年号) を明示的に指定する必要があります。 この例では、常に現在の時代 (年号) の日付と、指定した時代 (年号) に属する日付をインスタンス化する方法を示します。