我想将特定日期12-11-2008 11:33:04.510转换为UTC日期时间。任何人都可以帮我如何做到这一点。我想用c#编码来做这件事。
答案 0 :(得分:8)
只需使用DateTime.ToUniversalTime,假设它现在位于您计算机的本地时区。
答案 1 :(得分:2)
DateTime不支持时区。它可以被视为本地时间或UTC时间,正如Jon Skeet所说,DateTime.ToUniversalTime可以在它们之间进行转换。
在.NET3.5中还有TimeZoneInfo类,允许在任意时区之间转换DateTime,但是根据您的需要,前者可能已经足够好了。 还有一个DateTimeOffset类就像DateTime一样,除了它还存储了一个UTC的偏移量,如果你必须处理多个时区,它会更加健壮。
答案 2 :(得分:0)
如果您希望将DateTime标识为UTC,您还可以为其分配DateTimeKind,
DateTime saveNow = DateTime.Now; DateTime myDt; myDt = DateTime.SpecifyKind(saveNow,DateTimeKind.Utc);
或者如果你知道它是本地的: string formattedDate =“12-11-2008 11:33:04.510”; DateTime localDt = DateTime.Parse(formattedDate,null, DateTimeStyles.AssumeLocal);
或者如果您知道它是UTC: string formattedDate =“12-11-2008 11:33:04.510”; DateTime localDt = DateTime.Parse(formattedDate,null, DateTimeStyles.AssumeUniversal);