JapaneseCalendar.ToDateTime Metoda

Definicja

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

DateTime

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 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 określony dzień w epoce Taisho. Dane wyjściowe z przykładu zostały wygenerowane wraz z epoką Heisei jako bieżącą erą.

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. Następnie 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 na podstawie panowania cesarza, zawsze należy wywołać tę metodę i jawnie określić erę, aby uniknąć niezamierzonej daty i uczynić intencję kodu jasnym. 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.

Dotyczy

Zobacz też