TimeZoneInfo.TransitionTime.TimeOfDay 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取发生时间更改的小时、分钟和秒。
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 属性确定,浮动规则更改的 Month、 Week和 DayOfWeek 属性确定。 忽略此值 DateTime 的日期部分;年、月和日的值始终为 1。
属性 TimeOfDay 用于固定日期和浮动日期转换。