JapaneseCalendar.ToDateTime Metod

Definition

Returnerar ett DateTime som är inställt på angivet datum och tid i den angivna eran.

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

Parametrar

year
Int32

Ett heltal som representerar året.

month
Int32

Ett heltal från 1 till 12 som representerar månaden.

day
Int32

Ett heltal från 1 till 31 som representerar dagen.

hour
Int32

Ett heltal från 0 till 23 som representerar timmen.

minute
Int32

Ett heltal från 0 till 59 som representerar minuten.

second
Int32

Ett heltal från 0 till 59 som representerar det andra.

millisecond
Int32

Ett heltal från 0 till 999 som representerar millisekunderna.

era
Int32

Ett heltal som representerar eran.

Returer

Det DateTime som är inställt på det angivna datumet och tiden i den aktuella eran.

Undantag

year ligger utanför det intervall som stöds av kalendern.

-eller-

month ligger utanför det intervall som stöds av kalendern.

-eller-

day ligger utanför det intervall som stöds av kalendern.

-eller-

hour är mindre än noll eller större än 23.

-eller-

minute är mindre än noll eller större än 59.

-eller-

second är mindre än noll eller större än 59.

-eller-

millisecond är mindre än noll eller större än 999.

-eller-

era ligger utanför det intervall som stöds av kalendern.

Exempel

I följande exempel instansieras två datum. Den första är alltid den första dagen i det andra året i den aktuella eran, medan den andra identifierar en viss dag i Taisho-eran. Utdata från exemplet producerades med Heisei-eran som den aktuella eran.

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

Kommentarer

Metoden ToDateTime är användbar eftersom den kan konvertera valfritt datum i den aktuella kalendern till ett gregorianskt kalenderdatum. Det gregorianska datumet kan senare användas, till exempel för att jämföra datum i olika kalendrar eller skapa ett motsvarande datum i en viss kalender.

Eftersom stöder JapaneseCalendar flera epoker baserat på kejsarens regeringstid bör du alltid anropa den här metoden och uttryckligen ange en era för att undvika ett oavsiktligt datum och för att göra avsikten med din kod tydlig. Exemplet visar hur du instansierar ett datum som alltid är i den aktuella eran och ett som tillhör en angiven era.

Gäller för

Se även