JapaneseCalendar.ToDateTime Methode

Definition

Gibt einen DateTime Wert zurück, der auf das angegebene Datum und die angegebene Uhrzeit in der angegebenen Ära festgelegt ist.

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

Parameter

year
Int32

Eine ganze Zahl, die das Jahr darstellt.

month
Int32

Eine ganze Zahl zwischen 1 und 12, die den Monat darstellt.

day
Int32

Eine ganze Zahl zwischen 1 und 31, die den Tag darstellt.

hour
Int32

Eine ganze Zahl zwischen 0 und 23, die die Stunde darstellt.

minute
Int32

Eine ganze Zahl zwischen 0 und 59, die die Minute darstellt.

second
Int32

Eine ganze Zahl zwischen 0 und 59, die die zweite darstellt.

millisecond
Int32

Eine ganze Zahl zwischen 0 und 999, die den Millisekunden darstellt.

era
Int32

Eine ganze Zahl, die die Ära darstellt.

Gibt zurück

Der DateTime Wert, der auf das angegebene Datum und die angegebene Uhrzeit in der aktuellen Ära festgelegt ist.

Ausnahmen

year befindet sich außerhalb des vom Kalender unterstützten Bereichs.

-oder-

month befindet sich außerhalb des vom Kalender unterstützten Bereichs.

-oder-

day befindet sich außerhalb des vom Kalender unterstützten Bereichs.

-oder-

hour ist kleiner als null oder größer als 23.

-oder-

minute ist kleiner als 0 oder größer als 59.

-oder-

second ist kleiner als 0 oder größer als 59.

-oder-

millisecond ist kleiner als null oder größer als 999.

-oder-

era befindet sich außerhalb des vom Kalender unterstützten Bereichs.

Beispiele

Im folgenden Beispiel werden zwei Datumsangaben instanziiert. Der erste ist immer der erste Tag des zweiten Jahres in der aktuellen Ära, während die zweite einen bestimmten Tag in der Taisho-Ära identifiziert. Die Ausgabe aus dem Beispiel wurde mit der Heisei-Ära als aktuelle Ära produziert.

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

Hinweise

Die ToDateTime Methode ist nützlich, da sie ein beliebiges Datum im aktuellen Kalender in ein gregorianisches Kalenderdatum konvertieren kann. Das gregorianische Datum kann anschließend verwendet werden, um z. B. Datumsangaben in verschiedenen Kalendern zu vergleichen oder ein entsprechendes Datum in einem bestimmten Kalender zu erstellen.

Da die JapaneseCalendar Unterstützung mehrerer Epochen, die auf der Herrschaft des Kaisers basieren, sollten Sie diese Methode immer aufrufen und explizit eine Ära angeben, um ein unbeabsichtigtes Datum zu vermeiden und die Absicht Ihres Codes klar zu machen. Das Beispiel zeigt, wie ein Datum instanziiert wird, das sich immer in der aktuellen Ära befindet und eines, das zu einer bestimmten Ära gehört.

Gilt für:

Weitere Informationen