JapaneseCalendar.ToDateTime Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
DateTime Vrátí hodnotu, která je nastavena na zadané datum a čas v zadané éře.
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
Celé číslo, které představuje rok.
- month
- Int32
Celé číslo od 1 do 12, které představuje měsíc.
- day
- Int32
Celé číslo od 1 do 31, které představuje den.
- hour
- Int32
Celé číslo od 0 do 23, které představuje hodinu.
- minute
- Int32
Celé číslo od 0 do 59, které představuje minutu.
- second
- Int32
Celé číslo od 0 do 59, které představuje sekundu.
- millisecond
- Int32
Celé číslo od 0 do 999, které představuje milisekundu.
- era
- Int32
Celé číslo, které představuje éru.
Návraty
Hodnota DateTime nastavená na zadané datum a čas v aktuální éře.
Výjimky
year
je mimo rozsah podporovaný kalendářem.
-nebo-
month
je mimo rozsah podporovaný kalendářem.
-nebo-
day
je mimo rozsah podporovaný kalendářem.
-nebo-
hour
je menší než nula nebo větší než 23.
-nebo-
minute
je menší než nula nebo větší než 59.
-nebo-
second
je menší než nula nebo větší než 59.
-nebo-
millisecond
je menší než nula nebo větší než 999.
-nebo-
era
je mimo rozsah podporovaný kalendářem.
Příklady
Následující příklad vytvoří instanci dvou kalendářních dat. První je vždy první den druhého roku v aktuální éře, zatímco druhý označuje konkrétní den v éře Taisho. Výstup z příkladu byl vytvořen s érou Heisei jako aktuální érou.
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
Poznámky
Metoda ToDateTime je užitečná, protože může převést libovolné datum v aktuálním kalendáři na datum gregoriánského kalendáře. Gregoriánské datum lze následně použít například k porovnání kalendářních dat v různých kalendářích nebo k vytvoření ekvivalentního data v konkrétním kalendáři.
Vzhledem k tomu, že JapaneseCalendar podporuje více ér založených na vládě císaře, měli byste vždy volat tuto metodu a explicitně zadat éru, aby se zabránilo neúmyslnému datu a aby byl záměr vašeho kódu jasný. Příklad ukazuje, jak vytvořit instanci data, které je vždy v aktuální éře a které patří do zadané éry.