我想从字符串
创建一个带DateTimeOffset
的新offset = -5
我做:
string dt = "11082016";
DateTime date = DateTime.ParseExact(dt, "MMddyyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.None);
DateTimeOffset dto = new DateTimeOffset(date, TimeSpan.FromHours(-5));
是否可以直接创建DateTimeOffset
而无需经过DateTime
?
答案 0 :(得分:2)
是否可以在不经过的情况下直接创建DateTimeOffset DateTime?
不,那是不可能的。
每个DateTimeOffset
个实例都必须拥有它DateTimeKind.Local
部分。您无法创建DateTime
个实例,只有UTC Offset值。
Of course it has some constructors并未将DateTime
作为参数直接;
但那些DateTimeOffset
和DateTime
值仍在内部为当前实例.DateTime
property生成Int32
。
我想从字符串
创建一个新的DateTimeOffset,其偏移量= -5
如果你能做到这一点,你就不会 那个字符串,你不觉得吗?
答案 1 :(得分:1)
当然可以:
string dt = "11082016";
string o = "-5";
var dto = DateTimeOffset.ParseExact(dt + o, "MMddyyyyz", CultureInfo.InvariantCulture);
虽然它不是很漂亮 - 重点是DateTimeOffset
也有ParseExact
方法。