このページは役に立ちましたか。
このページのコンテンツについての ご意見をお待ちしております
その他にご意見はありますか。
残り 1500 文字
MSDN ライブラリ
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

DateTimeOffset.ToOffset メソッド

2013/12/12

現在の DateTimeOffset オブジェクトの値を、オフセット値で指定された日時に変換します。

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

public DateTimeOffset ToOffset(
	TimeSpan offset
)

パラメーター

offset
型: System.TimeSpan
DateTimeOffset 値の変換先のオフセット。

戻り値

型: System.DateTimeOffset
元の DateTimeOffset オブジェクトと等しく (つまり、ToUniversalTime メソッドで同じ特定の時点が返される)、かつ、Offset プロパティが offset に設定されているオブジェクト。

例外条件
ArgumentException

結果の DateTimeOffset オブジェクトの DateTime 値が MinValue 未満です。

または

結果の DateTimeOffset オブジェクトの DateTime 値が MaxValue を超えています。

ArgumentOutOfRangeException

offset が -14 時間未満です。

または

offset が 14 時間を超えています。

ToOffset メソッドは、TimeZoneInfo.ConvertTime(DateTimeOffset, TimeZoneInfo) メソッドの代わりに使用できます。世界協定時刻 (UTC) からのタイム ゾーン オフセットがわかっている場合、1 つのタイム ゾーンから別のタイム ゾーンへの単純な変換を実行するときに便利です。ただし、元の DateTimeOffset オブジェクトも、メソッドから返される新しい DateTimeOffset オブジェクトも、特定のタイム ゾーンに対して明確に関連付けられているわけではないので、変換時にタイム ゾーンの調整規則は適用されません。

次の例は、ToOffset メソッドを使用して、DateTimeOffset オブジェクトを、異なるオフセットを持つ DateTimeOffset オブジェクトに変換する方法を示しています。


using System;

public class Example
{
   private static DateTimeOffset sourceTime;

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      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(outputBlock, targetTime);

      // Convert to UTC (0 offset)
      targetTime = sourceTime.ToOffset(TimeSpan.Zero);
      ShowDateAndTimeInfo(outputBlock, targetTime);

      // Convert to 8 hours behind UTC
      targetTime = sourceTime.ToOffset(new TimeSpan(-8, 0, 0));
      ShowDateAndTimeInfo(outputBlock, targetTime);

      // Convert to 3 hours ahead of UTC
      targetTime = sourceTime.ToOffset(new TimeSpan(3, 0, 0));
      ShowDateAndTimeInfo(outputBlock, targetTime);
   }

   private static void ShowDateAndTimeInfo(System.Windows.Controls.TextBlock outputBlock, DateTimeOffset newTime)
   {
      outputBlock.Text += String.Format("{0} converts to {1}", sourceTime, newTime) + "\n";
      outputBlock.Text += String.Format("{0} and {1} are equal: {2}",
                        sourceTime, newTime, sourceTime.Equals(newTime)) + "\n";
      outputBlock.Text += String.Format("{0} and {1} are identical: {2}",
                        sourceTime, newTime,
                        sourceTime.EqualsExact(newTime)) + "\n";
      outputBlock.Text += "\n";
   }
}
//
// 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


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示:
© 2015 Microsoft