.net 是否可以从“解析日期时间”-“3:00:00”;一串

.net 是否可以从“解析日期时间”-“3:00:00”;一串,.net,datetime,datetime-parsing,.net,Datetime,Datetime Parsing,我有一个表示时间偏移的字符串 我可以从中构建DateTime对象吗 我的意思是,如果负值正常?显示有关解析日期时间字符串的所有信息显示有关解析日期时间字符串的所有信息如果是偏移量,是否应该使用TimeSpan而不是DateTime?这也应该处理负时间跨度。如果它是偏移量,您不应该使用TimeSpan而不是DateTime?这也应该处理负的时间跨度 TimeSpan s; if (!TimeSpan.TryParse("-3:00:00", out s)) throw new Argume

我有一个表示时间偏移的字符串

我可以从中构建DateTime对象吗


我的意思是,如果负值正常?

显示有关解析日期时间字符串的所有信息

显示有关解析日期时间字符串的所有信息

如果是偏移量,是否应该使用
TimeSpan
而不是
DateTime
?这也应该处理负时间跨度。

如果它是偏移量,您不应该使用
TimeSpan
而不是
DateTime
?这也应该处理负的时间跨度

TimeSpan s;
if (!TimeSpan.TryParse("-3:00:00", out s))
    throw new ArgumentException();
然后

然后


听起来你是在试图解析
TimeSpan
而不是
DateTime
我没有。我有一个第三方库,它有一个以DateTime为参数的方法。我面临的事实是,我需要向它输入-3:00:00“值。听起来你在试图解析
TimeSpan
而不是
DateTime
我没有。我有一个第三方库,它有一个以DateTime为参数的方法。我面临的事实是,我需要为它提供-3:00:00“值。如果解析不成功时抛出异常,那么使用
TryParse
是没有用的。这模仿了
Parse
的行为,为什么不使用它呢?@Daniel:这只是一个例子,说明了如何应对不成功的解析attempt@Daniel:同时
Parse()
抛出3个不同的异常,您可以抛出一个自定义异常(无需捕获和重新抛出),好了,所以有点像欺骗DateTime而不使用TryParse@Captain:如果您只需要时间部分,请不要修改DateTime,只需使用TimeSpan,它实际上是为此目的创建的。如果解析不成功,则引发异常,则使用
TryParse
是毫无用处的。这模仿了
Parse
的行为,为什么不使用它呢?@Daniel:这只是一个例子,说明了如何应对不成功的解析attempt@Daniel:同时
Parse()
抛出3个不同的异常,您可以抛出一个自定义异常(无需捕获和重新抛出),好了,所以有点像欺骗DateTime而不使用TryParse@Captain:如果您只需要时间部分,不要修改DateTime,只需使用TimeSpan,它实际上是为此目的创建的
DateTimeOffset offset = new DateTimeOffset(DateTime.Not, s); // -3
DateTime d = offset.DateTime; // or .Date