来自字符串的新 DateTimeOffset
New DateTimeOffset from string
我想用 offset = -5
从字符串
创建一个新的 DateTimeOffset
我愿意:
string dt = "11082016";
DateTime date = DateTime.ParseExact(dt, "MMddyyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.None);
DateTimeOffset dto = new DateTimeOffset(date, TimeSpan.FromHours(-5));
是否可以不通过 DateTime
直接创建 DateTimeOffset
?
Is it possible to create directly a DateTimeOffset without passing by
DateTime ?
不,那不可能。
每个 DateTimeOffset
instance has to have it's DateTime
part. You can't create a DateTimeOffset
instance just with a UTC Offset 值。
Of course it has some constructors 不把DateTime
作为参数直接 like;
- DateTimeOffset(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, TimeSpan)
- DateTimeOffset(Int32, Int32, Int32, Int32, Int32, Int32, Int32, TimeSpan)
- DateTimeOffset(Int32,‖Int32,‖Int32,‖Int32,‖Int32,‖Int32,‖TimeSpan)
- DateTimeOffset(Int64, TimeSpan)
但是那些 Int32
和 Int64
值是 仍然 在内部为当前实例 .DateTime
property 生成一个 Datetime
。
I want to create a new DateTimeOffset with offset = -5 from a string
如果你能做到这一点,你就不会需要那个字符串,你不觉得吗?
当然可以:
string dt = "11082016";
string o = "-5";
var dto = DateTimeOffset.ParseExact(dt + o, "MMddyyyyz", CultureInfo.InvariantCulture);
虽然不是很漂亮 - 重点是 DateTimeOffset
还有一个 ParseExact
方法。
我想用 offset = -5
从字符串
DateTimeOffset
我愿意:
string dt = "11082016";
DateTime date = DateTime.ParseExact(dt, "MMddyyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.None);
DateTimeOffset dto = new DateTimeOffset(date, TimeSpan.FromHours(-5));
是否可以不通过 DateTime
直接创建 DateTimeOffset
?
Is it possible to create directly a DateTimeOffset without passing by DateTime ?
不,那不可能。
每个 DateTimeOffset
instance has to have it's DateTime
part. You can't create a DateTimeOffset
instance just with a UTC Offset 值。
Of course it has some constructors 不把DateTime
作为参数直接 like;
- DateTimeOffset(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, TimeSpan)
- DateTimeOffset(Int32, Int32, Int32, Int32, Int32, Int32, Int32, TimeSpan)
- DateTimeOffset(Int32,‖Int32,‖Int32,‖Int32,‖Int32,‖Int32,‖TimeSpan)
- DateTimeOffset(Int64, TimeSpan)
但是那些 Int32
和 Int64
值是 仍然 在内部为当前实例 .DateTime
property 生成一个 Datetime
。
I want to create a new DateTimeOffset with offset = -5 from a string
如果你能做到这一点,你就不会需要那个字符串,你不觉得吗?
当然可以:
string dt = "11082016";
string o = "-5";
var dto = DateTimeOffset.ParseExact(dt + o, "MMddyyyyz", CultureInfo.InvariantCulture);
虽然不是很漂亮 - 重点是 DateTimeOffset
还有一个 ParseExact
方法。