JapaneseCalendar.ToDateTime Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Devolve a DateTime que está definido para a data e hora especificadas na 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
Um número inteiro que representa o ano.
- month
- Int32
Um número inteiro de 1 a 12 que representa o mês.
- day
- Int32
Um inteiro de 1 a 31 que representa o dia.
- hour
- Int32
Um inteiro de 0 a 23 que representa a hora.
- minute
- Int32
Um inteiro de 0 a 59 que representa o minuto.
- second
- Int32
Um inteiro de 0 a 59 que representa o segundo.
- millisecond
- Int32
Um inteiro de 0 a 999 que representa o milissegundo.
- era
- Int32
Um inteiro que representa a era.
Devoluções
O DateTime que é definido para a data e hora especificadas na era atual.
Exceções
year está fora do alcance suportado pelo calendário.
-ou-
month está fora do alcance suportado pelo calendário.
-ou-
day está fora do alcance suportado pelo calendário.
-ou-
hour é inferior a zero ou superior a 23.
-ou-
minute é inferior a zero ou superior a 59.
-ou-
second é inferior a zero ou superior a 59.
-ou-
millisecond é inferior a zero ou superior a 999.
-ou-
era está fora do alcance suportado pelo calendário.
Exemplos
O exemplo seguinte exemplifica duas datas. O primeiro é sempre o primeiro dia do segundo ano na era atual, enquanto o segundo identifica um dia específico na era Taisho. A produção do exemplo foi produzida com a era Heisei como a era atual.
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
Observações
O ToDateTime método é útil porque pode converter qualquer data do calendário atual para uma data do calendário gregoriano. A data gregoriana pode ser posteriormente usada, por exemplo, para comparar datas em diferentes calendários ou criar uma data equivalente num determinado calendário.
Como suporta JapaneseCalendar múltiplas eras baseadas no reinado do imperador, deves sempre chamar a este método e especificar explicitamente uma era para evitar uma data não intencional e para deixar clara a intenção do teu código. O exemplo mostra como instanciar uma data que está sempre na era atual e que pertence a uma era especificada.