将此日期格式“ 2019-11-07T13:30:00 + 05:30”转换为utc日期的最佳方法是什么?

时间:2019-11-08 11:20:44

标签: c#

我需要一种转换日期的方法: 2019-11-07T13:30:00 + 05:30 utc。

同时考虑到它具有+05:30

https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings

apply plugin: "com.google.gms.google-services"

它将其转换为该日期:

  

19年8月29日9:00:00

2 个答案:

答案 0 :(得分:0)

dateEnd="2019-11-07T13:30:00+05:30";
    matchObject.DateEnd = Convert.ToDateTime(dateEnd).ToUniversalTime();    

答案 1 :(得分:0)

好的,作为一个警告:时区可以是madening。我会尽力避免这种情况。幸运的是,在.NET中,大多数情况下我们都可以。

从Unix纪元(1970年1月1日)开始,内部DateTime存储Ticks的数量。您看到任何字符串和任何其他属性吗?这些只是对该值的一种解释。

ToString()和Parse()函数确实很擅长。如果未提供其他文化,则他们将撤回当前针对Windows(或其线程)设置的文化。对于DateTimes,它还将使您的本地时区(根据需要)纳入显示。

现在调试器也只是一个程序。当然,它会显示从Windows当前时区中查看的平均DateTime。或者更确切地说,此程序在其中运行的用户所使用的时区可以是具有各种奇怪情况的临时/仅编译用户。

使用输入字符串可以清楚地记录Origin的时区。我不记得曾经看到过语法,但是很可能就像为WebRequest提供特定端口一样。不猜测或暗示所涉及的价值。并且它被Parse接受,所以无论如何:)

如果从与UTC相关的日期中获取Date,它将设置Kind property to UTC。 Wich应该修复整个“在本地时区显示”问题。