DateTimeFormatInfo.Calendar Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft den für die aktuelle Kultur zu verwendenden Kalender ab oder legen diesen fest.
public:
property System::Globalization::Calendar ^ Calendar { System::Globalization::Calendar ^ get(); void set(System::Globalization::Calendar ^ value); };
public System.Globalization.Calendar Calendar { get; set; }
member this.Calendar : System.Globalization.Calendar with get, set
Public Property Calendar As Calendar
Eigenschaftswert
Der für die aktuelle Kultur zu verwendende Kalender. Der Standardwert für InvariantInfo ist ein GregorianCalendar-Objekt.
Ausnahmen
Die Eigenschaft wird auf null
festgelegt.
Die Eigenschaft wird auf ein Calendar-Objekt festgelegt, das für die aktuelle Kultur ungültig ist.
Die Eigenschaft wird festgelegt, und das DateTimeFormatInfo-Objekt ist schreibgeschützt.
Beispiele
Im folgenden Beispiel wird eine ChangeCalendar
Methode definiert, die den aktuellen Kalender einer Kultur in einen angegebenen Kalender ändert, es sei denn, es handelt sich um den aktuellen Kalender oder , wenn er von der Kultur nicht unterstützt wird. Der Code, der die -Methode aufruft, instanziiert ein CultureInfo -Objekt, das die arabische Kultur darstellt und zuerst versucht, seinen Kalender in den japanischen Kalender zu ändern. Da der japanische Kalender nicht unterstützt wird, ändert die -Methode den Kalender der Kultur nicht. Da der Umm al-Qura-Kalender jedoch ein Member der CultureInfo.OptionalCalendars Auflistung ist, ist es der Methode erfolgreich, ihn zum aktuellen Kalender für die ar-EG-Kultur zu machen.
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
CultureInfo ci = CultureInfo.CreateSpecificCulture("ar-EG");
Console.WriteLine("The current calendar for the {0} culture is {1}",
ci.Name,
CalendarUtilities.ShowCalendarName(ci.DateTimeFormat.Calendar));
CalendarUtilities.ChangeCalendar(ci, new JapaneseCalendar());
Console.WriteLine("The current calendar for the {0} culture is {1}",
ci.Name,
CalendarUtilities.ShowCalendarName(ci.DateTimeFormat.Calendar));
CalendarUtilities.ChangeCalendar(ci, new UmAlQuraCalendar());
Console.WriteLine("The current calendar for the {0} culture is {1}",
ci.Name,
CalendarUtilities.ShowCalendarName(ci.DateTimeFormat.Calendar));
}
}
public class CalendarUtilities
{
private Calendar newCal;
private bool isGregorian;
public static void ChangeCalendar(CultureInfo ci, Calendar cal)
{
CalendarUtilities util = new CalendarUtilities(cal);
// Is the new calendar already the current calendar?
if (util.CalendarExists(ci.DateTimeFormat.Calendar))
return;
// Is the new calendar supported?
if (Array.Exists(ci.OptionalCalendars, util.CalendarExists))
ci.DateTimeFormat.Calendar = cal;
}
private CalendarUtilities(Calendar cal)
{
newCal = cal;
// Is the new calendar a Gregorian calendar?
isGregorian = cal.GetType().Name.Contains("Gregorian");
}
private bool CalendarExists(Calendar cal)
{
if (cal.ToString() == newCal.ToString()) {
if (isGregorian) {
if (((GregorianCalendar) cal).CalendarType ==
((GregorianCalendar) newCal).CalendarType)
return true;
}
else {
return true;
}
}
return false;
}
public static string ShowCalendarName(Calendar cal)
{
string calName = cal.ToString().Replace("System.Globalization.", "");
if (cal is GregorianCalendar)
calName += ", Type " + ((GregorianCalendar) cal).CalendarType.ToString();
return calName;
}
}
// The example displays the following output:
// The current calendar for the ar-EG culture is GregorianCalendar, Type Localized
// The current calendar for the ar-EG culture is GregorianCalendar, Type Localized
// The current calendar for the ar-EG culture is UmAlQuraCalendar
Imports System.Globalization
Module Example
Public Sub Main()
Dim ci As CultureInfo = CultureInfo.CreateSpecificCulture("ar-EG")
Console.WriteLine("The current calendar for the {0} culture is {1}",
ci.Name,
CalendarUtilities.ShowCalendarName(ci.DateTimeFormat.Calendar))
CalendarUtilities.ChangeCalendar(ci, New JapaneseCalendar())
Console.WriteLine("The current calendar for the {0} culture is {1}",
ci.Name,
CalendarUtilities.ShowCalendarName(ci.DateTimeFormat.Calendar))
CalendarUtilities.ChangeCalendar(ci, New UmAlQuraCalendar())
Console.WriteLine("The current calendar for the {0} culture is {1}",
ci.Name,
CalendarUtilities.ShowCalendarName(ci.DateTimeFormat.Calendar))
End Sub
End Module
Public Class CalendarUtilities
Private newCal As Calendar
Private isGregorian As Boolean
Public Shared Sub ChangeCalendar(ci As CultureInfo, cal As Calendar)
Dim util As New CalendarUtilities(cal)
' Is the new calendar already the current calendar?
If util.CalendarExists(ci.DateTimeFormat.Calendar) Then
Exit Sub
End If
' Is the new calendar supported?
If Array.Exists(ci.OptionalCalendars, AddressOf util.CalendarExists) Then
ci.DateTimeFormat.Calendar = cal
End If
End Sub
Private Sub New(cal As Calendar)
newCal = cal
' Is the new calendar a Gregorian calendar?
isGregorian = cal.GetType().Name.Contains("Gregorian")
End Sub
Private Function CalendarExists(cal As Calendar) As Boolean
If cal.ToString() = newCal.ToString Then
If isGregorian Then
If CType(cal, GregorianCalendar).CalendarType =
CType(newCal, GregorianCalendar).CalendarType Then
Return True
End If
Else
Return True
End If
End If
Return False
End Function
Public Shared Function ShowCalendarName(cal As Calendar) As String
Dim calName As String = cal.ToString().Replace("System.Globalization.", "")
If TypeOf cal Is GregorianCalendar Then
calName += ", Type " + CType(cal, GregorianCalendar).CalendarType.ToString()
End If
Return calName
End Function
End Class
' The example displays the following output:
' The current calendar for the ar-EG culture is GregorianCalendar, Type Localized
' The current calendar for the ar-EG culture is GregorianCalendar, Type Localized
' The current calendar for the ar-EG culture is UmAlQuraCalendar
Hinweise
Die Calendar -Eigenschaft akzeptiert nur Kalender, die für die Kultur gültig sind, die dem -Objekt zugeordnet DateTimeFormatInfo ist. Die CultureInfo.OptionalCalendars -Eigenschaft gibt die Kalender an, die von einer bestimmten Kultur verwendet werden können, und die CultureInfo.Calendar -Eigenschaft gibt den Standardkalender für die Kultur an.
Wichtig
Die Zeitrechnung in japanischen Kalendern basiert auf den Regierungsperioden der Kaiser und wird sich daher erwartungsgemäß ändern. Beispiel: Der 1. Mai 2019 markiert den Beginn des Reiwa-Zeitabschnitts in den Kalendern des Typs JapaneseCalendar und JapaneseLunisolarCalendar. Eine derartige Änderung der Zeitabschnitte betrifft alle Anwendungen, die diese Kalender verwenden. Weitere Informationen und informationen dazu, ob Ihre Anwendungen betroffen sind, finden Sie unter Handling a new era in the Japanese calendar in .NET (Behandeln eines neuen Zeitraumes im japanischen Kalender in .NET). Informationen zum Testen Ihrer Anwendungen auf Windows Systemen, um deren Bereitschaft für den Zeitraumwechsel sicherzustellen, finden Sie unter Vorbereiten Ihrer Anwendung auf die Änderung des japanischen Zeitraumes. Informationen zu Features in .NET, die Kalender mit mehreren Epochen unterstützen, und bewährte Methoden für die Arbeit mit Kalendern, die mehrere Epochen unterstützen, finden Sie unter Arbeiten mit Epochen.
Das Ändern des Werts dieser Eigenschaft wirkt sich ebenfalls auf die folgenden Eigenschaften aus: , , , , , , , , , MonthNames AbbreviatedMonthNames und DayNames AbbreviatedDayNames CalendarWeekRule FirstDayOfWeek FullDateTimePattern LongDatePattern ShortDatePattern YearMonthPattern MonthDayPattern .
Wenn die Kultur des aktuellen Threads beispielsweise Japanisch ist, akzeptiert diese Eigenschaft JapaneseCalendar , Localized GregorianCalendar oder USEnglish GregorianCalendar . Wenn JapaneseCalendar verwendet wird, ist der standardmäßige lange Datumsbezeichner "gg y'\x5e74'M'\x6708'd'\x65e5'". Wenn Localized GregorianCalendar verwendet wird, ist der standardmäßige lange Datumsbezeichner "yyyy'\x5e74'M'\x6708'd'\x65e5'".