Compartir a través de


JapaneseCalendar.ToDateTime Método

Definición

Devuelve un DateTime que se establece en la fecha y hora de la era especificada.

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

Parámetros

year
Int32

Entero que representa el año.

month
Int32

Entero de 1 a 12 que representa el mes.

day
Int32

Entero de 1 a 31 que representa el día.

hour
Int32

Entero de 0 a 23 que representa la hora.

minute
Int32

Entero de 0 a 59 que representa el minuto.

second
Int32

Entero de 0 a 59 que representa el segundo.

millisecond
Int32

Entero de 0 a 999 que representa el milisegundo.

era
Int32

Entero que representa la era.

Devoluciones

Objeto DateTime que se establece en la fecha y hora especificadas de la era actual.

Excepciones

year está fuera del intervalo que admite el calendario.

o bien

month está fuera del intervalo que admite el calendario.

o bien

day está fuera del intervalo que admite el calendario.

o bien

hour es menor que cero o mayor que 23.

o bien

minute es menor que cero o mayor que 59.

o bien

second es menor que cero o mayor que 59.

o bien

millisecond es menor que cero o mayor que 999.

o bien

era está fuera del intervalo que admite el calendario.

Ejemplos

En el ejemplo siguiente se crean instancias de dos fechas. El primero es siempre el primer día del segundo año de la era actual, mientras que el segundo identifica un día específico en la era taisho. La salida del ejemplo se produjo con la era Heisei como era actual.

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

Comentarios

El ToDateTime método es útil porque puede convertir cualquier fecha del calendario actual en una fecha de calendario gregoriana. La fecha gregoriana se puede usar posteriormente, por ejemplo, para comparar fechas en calendarios diferentes o crear una fecha equivalente en un calendario determinado.

JapaneseCalendar Dado que admite varias eras basadas en el reinado del emperador, siempre debe llamar a este método y especificar explícitamente una era para evitar una fecha no deseada y para que la intención del código sea clara. En el ejemplo se muestra cómo crear una instancia de una fecha que siempre está en la era actual y una que pertenece a una era especificada.

Se aplica a

Consulte también