DateTimeOffset.ToOffset(TimeSpan) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在の DateTimeOffset オブジェクトの値を、オフセット値で指定された日時に変換します。
public:
DateTimeOffset ToOffset(TimeSpan offset);
public DateTimeOffset ToOffset (TimeSpan offset);
member this.ToOffset : TimeSpan -> DateTimeOffset
Public Function ToOffset (offset As TimeSpan) As DateTimeOffset
パラメーター
- offset
- TimeSpan
変換後の DateTimeOffset 値のオフセット。
戻り値
元の DateTimeOffset オブジェクトと等しく (つまり、ToUniversalTime() メソッドで同じ特定の時点が返される)、かつ、Offset プロパティが offset
に設定されているオブジェクト。
例外
結果 DateTimeOffset のオブジェクトの DateTime 値は 、DateTimeOffset.MinValue より前です。
\- または -
結果のDateTimeOffsetオブジェクトの値は、DateTimeDateTimeOffset.MaxValue より後です。
例
次の例は、 メソッドを使用 ToOffset して、オブジェクトを DateTimeOffset 別のオフセットを DateTimeOffset 持つオブジェクトに変換する方法を示しています。
using System;
public class DateTimeOffsetConversion
{
private static DateTimeOffset sourceTime;
public static void Main()
{
DateTimeOffset targetTime;
sourceTime = new DateTimeOffset(2007, 9, 1, 9, 30, 0,
new TimeSpan(-5, 0, 0));
// Convert to same time (return sourceTime unchanged)
targetTime = sourceTime.ToOffset(new TimeSpan(-5, 0, 0));
ShowDateAndTimeInfo(targetTime);
// Convert to UTC (0 offset)
targetTime = sourceTime.ToOffset(TimeSpan.Zero);
ShowDateAndTimeInfo(targetTime);
// Convert to 8 hours behind UTC
targetTime = sourceTime.ToOffset(new TimeSpan(-8, 0, 0));
ShowDateAndTimeInfo(targetTime);
// Convert to 3 hours ahead of UTC
targetTime = sourceTime.ToOffset(new TimeSpan(3, 0, 0));
ShowDateAndTimeInfo(targetTime);
}
private static void ShowDateAndTimeInfo(DateTimeOffset newTime)
{
Console.WriteLine("{0} converts to {1}", sourceTime, newTime);
Console.WriteLine("{0} and {1} are equal: {2}",
sourceTime, newTime, sourceTime.Equals(newTime));
Console.WriteLine("{0} and {1} are identical: {2}",
sourceTime, newTime,
sourceTime.EqualsExact(newTime));
Console.WriteLine();
}
}
//
// The example displays the following output:
// 9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 9:30:00 AM -05:00
// 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 9:30:00 AM -05:00 are equal: True
// 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 9:30:00 AM -05:00 are identical: True
//
// 9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 2:30:00 PM +00:00
// 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 2:30:00 PM +00:00 are equal: True
// 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 2:30:00 PM +00:00 are identical: False
//
// 9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 6:30:00 AM -08:00
// 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 6:30:00 AM -08:00 are equal: True
// 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 6:30:00 AM -08:00 are identical: False
//
// 9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 5:30:00 PM +03:00
// 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 5:30:00 PM +03:00 are equal: True
// 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 5:30:00 PM +03:00 are identical: False
open System
let sourceTime = DateTimeOffset(2007, 9, 1, 9, 30, 0, TimeSpan(-5, 0, 0))
let showDateAndTimeInfo newTime =
printfn $"{sourceTime} converts to {newTime}"
printfn $"{sourceTime} and {newTime} are equal: {sourceTime.Equals newTime}"
printfn $"{sourceTime} and {newTime} are identical: {sourceTime.EqualsExact newTime}\n"
[<EntryPoint>]
let main _ =
// Convert to same time (return sourceTime unchanged)
let targetTime = sourceTime.ToOffset(TimeSpan(-5, 0, 0))
showDateAndTimeInfo targetTime
// Convert to UTC (0 offset)
let targetTime = sourceTime.ToOffset TimeSpan.Zero
showDateAndTimeInfo targetTime
// Convert to 8 hours behind UTC
let targetTime = sourceTime.ToOffset(TimeSpan(-8, 0, 0))
showDateAndTimeInfo targetTime
// Convert to 3 hours ahead of UTC
let targetTime = sourceTime.ToOffset(TimeSpan(3, 0, 0))
showDateAndTimeInfo targetTime
0
// The example displays the following output:
// 9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 9:30:00 AM -05:00
// 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 9:30:00 AM -05:00 are equal: True
// 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 9:30:00 AM -05:00 are identical: True
//
// 9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 2:30:00 PM +00:00
// 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 2:30:00 PM +00:00 are equal: True
// 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 2:30:00 PM +00:00 are identical: False
//
// 9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 6:30:00 AM -08:00
// 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 6:30:00 AM -08:00 are equal: True
// 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 6:30:00 AM -08:00 are identical: False
//
// 9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 5:30:00 PM +03:00
// 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 5:30:00 PM +03:00 are equal: True
// 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 5:30:00 PM +03:00 are identical: False
Module DateTimeOffsetConversion
Private sourceTime As New DateTimeOffset(#9/1/2007 9:30AM#, _
New TimeSpan(-5, 0, 0))
Public Sub Main()
Dim targetTime As DateTimeOffset
' Convert to same time (return sourceTime unchanged)
targetTime = sourceTime.ToOffset(New TimeSpan(-5, 0, 0))
ShowDateAndTimeInfo(targetTime)
' Convert to UTC (0 offset)
targetTime = sourceTime.ToOffset(TimeSpan.Zero)
ShowDateAndTimeInfo(targetTime)
' Convert to 8 hours behind UTC
targetTime = sourceTime.ToOffset(New TimeSpan(-8, 0, 0))
ShowDateAndTimeInfo(targetTime)
' Convert to 3 hours ahead of UTC
targetTime = sourceTime.ToOffset(New TimeSpan(3, 0, 0))
ShowDateAndTimeInfo(targetTime)
End Sub
Private Sub ShowDateAndTimeInfo(newTime As DateTimeOffset)
Console.WriteLine("{0} converts to {1}", sourceTime, newTime)
Console.WriteLine("{0} and {1} are equal: {2}", _
sourceTime, newTime, sourceTime.Equals(newTime))
Console.WriteLine("{0} and {1} are identical: {2}", _
sourceTime, newTime, _
sourceTime.EqualsExact(newTime))
Console.WriteLine()
End Sub
End Module
'
' The example displays the following output:
' 9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 9:30:00 AM -05:00
' 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 9:30:00 AM -05:00 are equal: True
' 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 9:30:00 AM -05:00 are identical: True
'
' 9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 2:30:00 PM +00:00
' 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 2:30:00 PM +00:00 are equal: True
' 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 2:30:00 PM +00:00 are identical: False
'
' 9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 6:30:00 AM -08:00
' 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 6:30:00 AM -08:00 are equal: True
' 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 6:30:00 AM -08:00 are identical: False
'
' 9/1/2007 9:30:00 AM -05:00 converts to 9/1/2007 5:30:00 PM +03:00
' 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 5:30:00 PM +03:00 are equal: True
' 9/1/2007 9:30:00 AM -05:00 and 9/1/2007 5:30:00 PM +03:00 are identical: False
注釈
メソッドは ToOffset 、 メソッドを呼び出す代わりに使用します TimeZoneInfo.ConvertTime(DateTimeOffset, TimeZoneInfo) 。 協定世界時 (UTC) からのタイム ゾーンのオフセットがわかっている場合に、あるタイム ゾーンから別のタイム ゾーンへの単純な変換を実行する場合に便利です。 ただし、元 DateTimeOffset のオブジェクトも、メソッド呼び出しによって返される新しい DateTimeOffset オブジェクトも、特定のタイム ゾーンに明確に関連していないため、メソッドは変換にタイム ゾーン調整ルールを適用しません。
適用対象
.NET