TimeZoneInfo.TransitionTime.TimeOfDay Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает час, минуту и секунду, когда происходит изменение времени.
public:
property DateTime TimeOfDay { DateTime get(); };
public DateTime TimeOfDay { get; }
member this.TimeOfDay : DateTime
Public ReadOnly Property TimeOfDay As DateTime
Значение свойства
Время суток, когда происходит изменение времени.
Примеры
В следующем примере перечисляются часовые пояса, обнаруженные на локальном компьютере, и отображаются сведения о времени перехода для тех часовых поясов, в которых есть правила корректировки. Сведения о времени включают время суток, в течение которого происходит изменение времени.
private enum WeekOfMonth
{
First = 1,
Second = 2,
Third = 3,
Fourth = 4,
Last = 5,
}
public void GetAllTransitionTimes()
{
ReadOnlyCollection<TimeZoneInfo> timeZones = TimeZoneInfo.GetSystemTimeZones();
DateTimeFormatInfo dateInfo = CultureInfo.CurrentCulture.DateTimeFormat;
foreach (TimeZoneInfo zone in timeZones)
{
Console.WriteLine("{0} transition time information:", zone.StandardName);
TimeZoneInfo.AdjustmentRule[] adjustmentRules= zone.GetAdjustmentRules();
// Indicate that time zone has no adjustment rules
if (adjustmentRules.Length == 0)
{
Console.WriteLine(" No adjustment rules defined.");
}
else
{
// Iterate adjustment rules
foreach (TimeZoneInfo.AdjustmentRule adjustmentRule in adjustmentRules)
{
Console.WriteLine(" Adjustment rule from {0:d} to {1:d}:",
adjustmentRule.DateStart,
adjustmentRule.DateEnd);
// Get start of transition
TimeZoneInfo.TransitionTime daylightStart = adjustmentRule.DaylightTransitionStart;
// Display information on fixed date rule
if (! daylightStart.IsFixedDateRule)
Console.WriteLine(" Begins at {0:t} on the {1} {2} of {3}.",
daylightStart.TimeOfDay,
((WeekOfMonth)daylightStart.Week).ToString(),
daylightStart.DayOfWeek.ToString(),
dateInfo.GetMonthName(daylightStart.Month));
// Display information on floating date rule
else
Console.WriteLine(" Begins at {0:t} on the {1} {2} of {3}.",
daylightStart.TimeOfDay,
((WeekOfMonth)daylightStart.Week).ToString(),
daylightStart.DayOfWeek.ToString(),
dateInfo.GetMonthName(daylightStart.Month));
// Get end of transition
TimeZoneInfo.TransitionTime daylightEnd = adjustmentRule.DaylightTransitionEnd;
// Display information on fixed date rule
if (! daylightEnd.IsFixedDateRule)
Console.WriteLine(" Ends at {0:t} on the {1} {2} of {3}.",
daylightEnd.TimeOfDay,
((WeekOfMonth)daylightEnd.Week).ToString(),
daylightEnd.DayOfWeek.ToString(),
dateInfo.GetMonthName(daylightEnd.Month));
// Display information on floating date rule
else
Console.WriteLine(" Ends at {0:t} on the {1} {2} of {3}.",
daylightStart.TimeOfDay,
((WeekOfMonth)daylightStart.Week).ToString(),
daylightStart.DayOfWeek.ToString(),
dateInfo.GetMonthName(daylightStart.Month));
}
}
}
}
type WeekOfMonth =
| First = 1
| Second = 2
| Third = 3
| Fourth = 4
| Last = 5
let getAllTransitionTimes () =
let timeZones = TimeZoneInfo.GetSystemTimeZones()
let dateInfo = CultureInfo.CurrentCulture.DateTimeFormat
for zone in timeZones do
printfn $"{zone.StandardName} transition time information:"
let adjustmentRules= zone.GetAdjustmentRules()
// Indicate that time zone has no adjustment rules
if adjustmentRules.Length = 0 then
printfn " No adjustment rules defined."
else
// Iterate adjustment rules
for adjustmentRule in adjustmentRules do
printfn $" Adjustment rule from {adjustmentRule.DateStart:d} to {adjustmentRule.DateEnd:d}:"
// Get start of transition
let daylightStart = adjustmentRule.DaylightTransitionStart
// Display information on fixed date rule
if not daylightStart.IsFixedDateRule then
printfn $" Begins at {daylightStart.TimeOfDay:t} on the {enum<WeekOfMonth> daylightStart.Week} {daylightStart.DayOfWeek} of {dateInfo.GetMonthName daylightStart.Month}."
// Display information on floating date rule
else
printfn $" Begins at {daylightStart.TimeOfDay:t} on the {enum<WeekOfMonth> daylightStart.Week} {daylightStart.DayOfWeek} of {dateInfo.GetMonthName daylightStart.Month}."
// Get end of transition
let daylightEnd = adjustmentRule.DaylightTransitionEnd
// Display information on fixed date rule
if not daylightEnd.IsFixedDateRule then
printfn $" Ends at {daylightEnd.TimeOfDay:t} on the {enum<WeekOfMonth> daylightEnd.Week} {daylightEnd.DayOfWeek} of {dateInfo.GetMonthName daylightEnd.Month}."
// Display information on floating date rule
else
printfn $" Ends at {daylightStart.TimeOfDay:t} on the {enum<WeekOfMonth> daylightStart.Week} {daylightStart.DayOfWeek} of {dateInfo.GetMonthName daylightStart.Month}."
Private Enum WeekOfMonth As Integer
First = 1
Second = 2
Third = 3
Fourth = 4
Last = 5
End Enum
Sub GetAllTransitionTimes()
Dim timeZones As ReadOnlyCollection(Of TimeZoneInfo) = TimeZoneInfo.GetSystemTimeZones()
For Each zone As TimeZoneInfo In timeZones
Console.WriteLine("{0} transition time information:", zone.StandardName)
Dim adjustmentRules() As TimeZoneInfo.AdjustmentRule = zone.GetAdjustmentRules()
' Indicate that time zone has no adjustment rules
If adjustmentRules.Length = 0 Then
Console.WriteLine(" No adjustment rules defined.")
Else
' Iterate adjustment rules
For Each adjustmentRule As TimeZoneInfo.AdjustmentRule in adjustmentRules
Console.WriteLine(" Adjustment rule from {0:d} to {1:d}:", _
adjustmentRule.DateStart, _
adjustmentRule.DateEnd)
' Get start of transition
Dim daylightStart As TimeZoneInfo.TransitionTime = adjustmentRule.DaylightTransitionStart
' Display information on fixed date rule
If Not daylightStart.IsFixedDateRule Then
Console.WriteLine(" Begins at {0:t} on the {1} {2} of {3}.", _
daylightStart.TimeOfDay, _
CType(daylightStart.Week, WeekOfMonth).ToString(), _
daylightStart.DayOfWeek.ToString(), _
MonthName(daylightStart.Month))
' Display information on floating date rule
Else
Console.WriteLine(" Begins at {0:t} on the {1} {2} of {3}.", _
daylightStart.TimeOfDay, _
CType(daylightStart.Week, WeekOfMonth).ToString(), _
daylightStart.DayOfWeek.ToString(), _
MonthName(daylightStart.Month))
End If
' Get end of transition
Dim daylightEnd As TimeZoneInfo.TransitionTime = adjustmentRule.DaylightTransitionEnd
' Display information on fixed date rule
If Not daylightEnd.IsFixedDateRule Then
Console.WriteLine(" Ends at {0:t} on the {1} {2} of {3}.", _
daylightEnd.TimeOfDay, _
CType(daylightEnd.Week, WeekOfMonth).ToString(), _
daylightEnd.DayOfWeek.ToString(), _
MonthName(daylightEnd.Month))
' Display information on floating date rule
Else
Console.WriteLine(" Ends at {0:t} on the {1} {2} of {3}.", _
daylightStart.TimeOfDay, _
CType(daylightStart.Week, WeekOfMonth).ToString(), _
daylightStart.DayOfWeek.ToString(), _
MonthName(daylightStart.Month))
End If
Next
End If
Next
End Sub
Комментарии
Для переходов с стандартного времени на летнее время TimeOfDay значение представляет время перехода в стандартное время часового пояса. Для переходов с летнего времени на стандартное время оно представляет время перехода в летнее время часового пояса.
Свойство TimeOfDay определяет только время изменения времени, но не его дату. Дата определяется изменениями фиксированного Month правила и Day свойствамиWeekMonth, а также DayOfWeek свойствами для изменений с плавающей запятой. Компонент даты этого DateTime значения игнорируется; значение года, месяца и дня всегда равно 1.
Свойство TimeOfDay используется как для переходов с фиксированной датой, так и с плавающей запятой.