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 Так как поддерживает несколько эпох в зависимости от правления императора, следует всегда вызывать этот метод и явно указывать эру, чтобы избежать непреднамеренных дат и четко определить цель кода. В примере показано, как создать экземпляр даты, которая всегда находится в текущей эре, и дата, принадлежающая указанной эре.