winforms C#将日期时间转换为时区UTC+07并比较两个日期时间

tf7tbtn2  于 2022-11-25  发布在  C#
关注(0)|答案(1)|浏览(162)

在应用程序中,我在Web服务中检索时间,并将时间与XML文件中的时间进行比较,我不知道Web服务返回的确切时区,因此我希望在比较之前将两者转换为相同的时区

  • XML文件中的时间:2022年5月16日15时37分56.000秒+07时00分
    Web服务中的返回时间(_T):2022年5月16日15时30分
    请帮助我将时间返回Web服务转换为UTC +07在代码比较时间中:
DateTime date1 = new DateTime(time_XML.Ticks);
            DateTime date2 = new DateTime(time_Webservice.Ticks);
            int result = DateTime.Compare(date1, date2);
            if (result < 0)
            {
                //relationship = "is earlier than";
                return false;
            }  
            else if (result == 0)
            {
                //relationship = "is the same time as";
                return false;
            }  
            else
            {
                //relationship = "is later than";
                return true;
            }
5lhxktic

5lhxktic1#

使用ToUniversalTime将本地DateTime转换为UTC:

DateTime date1 = new DateTime(time_XML.Ticks).ToUniversalTime();
DateTime date2 = new DateTime(time_Webservice.Ticks).ToUniversalTime();
// now compare them

您的示例:

string dtStr1 = "2022-05-16T15:37:56.000+07:00";
string dtStr2 = "2022-05-16 15:30:00";
DateTime date1 = DateTime.Parse(dtStr1);
DateTime date2 = DateTime.Parse(dtStr2);
Console.WriteLine("date1: " + date1 + " kind: " + date1.Kind);
Console.WriteLine("date2: " + date2 + " kind: " + date2.Kind);
DateTime dateUtc1 = date1.ToUniversalTime();
DateTime dateUtc2 = date2.ToUniversalTime();
Console.WriteLine("dateUtc1: " + dateUtc1 + " kind: " + dateUtc1.Kind);
Console.WriteLine("dateUtc2: " + dateUtc2 + " kind: " + dateUtc2.Kind);

我的输出(德国):

date1: 16.05.2022 10:37:56 kind: Local
date2: 16.05.2022 15:30:00 kind: Unspecified
dateUtc1: 16.05.2022 08:37:56 kind: Utc
dateUtc2: 16.05.2022 13:30:00 kind: Utc

相关问题