DateTimeOffset.ToOffset(TimeSpan)方法用于将当前DateTimeOffset对象的值转换为由偏移值指定的日期和时间。
Syntax: public DateTimeOffset ToOffset (TimeSpan offset);
Here, it takes the offset to convert the DateTimeOffset value to.
Return Value: This method returns an object that is equal to the original DateTimeOffset object (that is, their ToUniversalTime() methods return identical points in time) but whose Offset property is set to offset.
Exceptions:
- ArgumentException If the resulting DateTimeOffset object has a DateTime value earlier than MinValue. Or the resulting DateTimeOffset object has a DateTime value later than MaxValue.
- ArgumentOutOfRangeException If the offset is less than -14 hours. Or offset is greater than 14 hours.
下面的程序说明了DateTimeOffset.ToOffset()方法的用法:
范例1:
// C# program to demonstrate the
// DateTimeOffset.ToOffset(TimeSpan)
// Method
using System;
using System.Globalization;
class GFG {
// Main Method
public static void Main()
{
try {
// creating object of DateTimeOffset
DateTimeOffset offset = new DateTimeOffset(2007,
6, 1, 7, 55, 0, new TimeSpan(-5, 0, 0));
// Converts the value of
// the current DateTimeOffset
// object to the date and time
// specified by an offset value.
// instance using ToOffset() method
DateTimeOffset value = offset.ToOffset(new TimeSpan(-5, 1, 0));
// Display the time
Console.WriteLine("DateTimeOffset is {0}", value);
}
catch (ArgumentOutOfRangeException e)
{
Console.Write("Exception Thrown: ");
Console.Write("{0}", e.GetType(), e.Message);
}
catch (ArgumentException e)
{
Console.Write("Exception Thrown: ");
Console.Write("{0}", e.GetType(), e.Message);
}
}
}
输出:
DateTimeOffset is 06/01/2007 07:56:00 -04:59
示例2:对于ArgumentOutOfRangeException
// C# program to demonstrate the
// DateTimeOffset.ToOffset(TimeSpan)
// Method
using System;
using System.Globalization;
class GFG {
// Main Method
public static void Main()
{
try {
// creating object of DateTimeOffset
DateTimeOffset offset = DateTimeOffset.MaxValue;
// Converts the value of the
// current DateTimeOffset
// object to the date and time
// specified by an offset value.
// instance using ToOffset() method
DateTimeOffset value = offset.ToOffset(new TimeSpan(5, 1, 0));
// Display the time
Console.WriteLine("DateTimeOffset is {0}", value);
}
catch (ArgumentOutOfRangeException e)
{
Console.Write("Exception Thrown: ");
Console.Write("{0}", e.GetType(), e.Message);
}
catch (ArgumentException e)
{
Console.Write("Exception Thrown: ");
Console.Write("{0}", e.GetType(), e.Message);
}
}
}
输出:
Exception Thrown: System.ArgumentOutOfRangeException
参考:
- https://docs.microsoft.com/zh-cn/dotnet/api/system.datetimeoffset.tooffset?view=netframework-4.7.2