JapaneseCalendar.ToDateTime 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回设置为指定纪元中指定日期和时间的 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
小于 0 或大于 23。
- 或 -
minute
小于 0 或大于 59。
- 或 -
second
小于 0 或大于 59。
- 或 -
millisecond
小于 0 或大于 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由于 支持基于皇帝统治的多个纪元,因此应始终调用此方法并显式指定纪元,以避免意外日期并明确代码的意图。 该示例演示如何实例化始终位于当前纪元中的日期和属于指定纪元的日期。