Razor将字符串转换为具有长时区的DateTimeOffset

时间:2014-07-21 15:01:09

标签: c# datetime razor datetimeoffset

我有一个像这样的日期的数据库,存储为字符串:     2014-07-14T09:13:01.492 + 02:00:00

我想将它转换为日期时间,如“DD - MM - YYYY,hh-mm-ss”但如果我尝试将我的字符串首先转换为datetimeoffset然后转换为我最喜欢的日期时间格式,则会失败。它似乎因为我的字符串中的最后一个“:00”而失败。如何轻松解决这个问题?

这是原始的错误消息(德语)“Die Zeichenfolge wurde nichtalsgültigesDateTimeerkannt。”

这意味着我的字符串不是有效的日期时间格式

所以这是我的代码(仅使用examplestring)

                @{
                    string str = "2014-07-14T09:13:01.492+02:00:00";
                    DateTimeOffset newDate= DateTimeOffset.Parse(str);
                }

1 个答案:

答案 0 :(得分:1)

最好的办法是像Vogel所说的那样规范你的数据库,但既然你做不到,你可能会尝试这样做:

string str = "2014-07-14T09:13:01.492+02:00:00";
DateTime dtnew = DateTime.ParseExact(str, "yyyy-MM-ddTHH:mm:ss.fffzzz:00", System.Globalization.CultureInfo.InvariantCulture);
DateTimeOffset newDate = DateTime.SpecifyKind(dtnew, DateTimeKind.Local);

不是最好的方式,但确实有效!