JapaneseCalendar.ToDateTime Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
DateTime Возвращает значение указанной даты и времени в указанной эре.
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
Параметры
- year
- Int32
Целое число, представляющее год.
- month
- Int32
Целое число от 1 до 12, представляющее месяц.
- day
- Int32
Целое число от 1 до 31, представляющее день.
- hour
- Int32
Целое число от 0 до 23, представляющее час.
- minute
- Int32
Целое число от 0 до 59, представляющее минуту.
- second
- Int32
Целое число от 0 до 59, представляющее второй.
- millisecond
- Int32
Целое число от 0 до 999, представляющее миллисекунда.
- era
- Int32
Целое число, представляющее эпоху.
Возвращаемое значение
Для DateTime параметра задана указанная дата и время в текущей эре.
Исключения
year находится вне диапазона, поддерживаемого календарем.
–или–
month находится вне диапазона, поддерживаемого календарем.
–или–
day находится вне диапазона, поддерживаемого календарем.
–или–
hour меньше нуля или больше 23.
–или–
minute меньше нуля или больше 59.
–или–
second меньше нуля или больше 59.
–или–
millisecond меньше нуля или больше 999.
–или–
era находится вне диапазона, поддерживаемого календарем.
Примеры
В следующем примере создается экземпляр двух дат. Первый всегда первый день второго года в текущей эре, в то время как второй идентифицирует конкретный день в эпоху Тайшо. Выходные данные из примера были созданы с эрой Heisei в качестве текущей эпохи.
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
Комментарии
Этот ToDateTime метод полезен, так как он может преобразовать любую дату в текущем календаре в дату григорианского календаря. Затем можно использовать грегорианскую дату, например для сравнения дат в разных календарях или создания эквивалентной даты в определенном календаре.
Поскольку поддерживает JapaneseCalendar несколько эпох, основанных на царстве императора, вы всегда должны вызывать этот метод и явно указывать эру, чтобы избежать непреднамеренных дат и сделать намерение вашего кода ясным. В примере показано, как создать экземпляр даты, которая всегда находится в текущей эре и той, которая принадлежит указанной эре.