JapaneseCalendar.ToDateTime Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zwraca wartość ustawioną DateTime na określoną datę i godzinę w określonej erze.
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
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
Parametry
- year
- Int32
Liczba całkowita reprezentująca rok.
- month
- Int32
Liczba całkowita z zakresu od 1 do 12 reprezentująca miesiąc.
- day
- Int32
Liczba całkowita z zakresu od 1 do 31, która reprezentuje dzień.
- hour
- Int32
Liczba całkowita z zakresu od 0 do 23, która reprezentuje godzinę.
- minute
- Int32
Liczba całkowita z zakresu od 0 do 59, która reprezentuje minutę.
- second
- Int32
Liczba całkowita z zakresu od 0 do 59, która reprezentuje drugą.
- millisecond
- Int32
Liczba całkowita z zakresu od 0 do 999, która reprezentuje milisekundę.
- era
- Int32
Liczba całkowita reprezentująca erę.
Zwraca
Ustawiono DateTime określoną datę i godzinę w bieżącej erze.
Wyjątki
year
znajduje się poza zakresem obsługiwanym przez kalendarz.
-lub-
month
znajduje się poza zakresem obsługiwanym przez kalendarz.
-lub-
day
znajduje się poza zakresem obsługiwanym przez kalendarz.
-lub-
hour
wartość jest mniejsza niż zero lub większa niż 23.
-lub-
minute
wartość jest mniejsza niż zero lub większa niż 59.
-lub-
second
wartość jest mniejsza niż zero lub większa niż 59.
-lub-
millisecond
wartość jest mniejsza niż zero lub większa niż 999.
-lub-
era
znajduje się poza zakresem obsługiwanym przez kalendarz.
Przykłady
Poniższy przykład tworzy wystąpienie dwóch dat. Pierwszy jest zawsze pierwszym dniem drugiego roku w obecnej epoce, podczas gdy drugi identyfikuje konkretny dzień w epoce Taisho. Dane wyjściowe z przykładu zostały wygenerowane wraz z epoką Heisei jako bieżąca era.
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
Uwagi
Metoda jest przydatna ToDateTime , ponieważ może przekonwertować dowolną datę w bieżącym kalendarzu na datę kalendarza gregoriańskiego. Później można użyć daty gregoriańskiej, aby porównać daty w różnych kalendarzach lub utworzyć równoważną datę w określonym kalendarzu.
JapaneseCalendar Ponieważ obsługuje wiele epok opartych na panowaniu cesarza, zawsze należy wywołać tę metodę i jawnie określić erę, aby uniknąć niezamierzonej daty i wyjaśnić intencję kodu. W przykładzie pokazano, jak utworzyć wystąpienie daty, która jest zawsze w bieżącej erze i która należy do określonej ery.