Sdílet prostřednictvím


JapaneseCalendar.ToDateTime Metoda

Definice

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.

Platí pro

Viz také