gpt4 book ai didi

WCF根据时区自动转换时间

转载 作者:行者123 更新时间:2023-12-04 15:38:00 25 4
gpt4 key购买 nike

我正在使用 WCF 服务,它返回服务器的当前时间。
我的客户在不同的时区。当我调用此服务时,它会自动将服务器返回的时间转换为本地时间,这是我不想要的。我如何忽略这个?

最佳答案

将您从 WCF 服务发出的转换为 UTC,并在您的客户端中创建新时间时,将它们指定为 UTC 类型。这将使时间基线为通用标准时区。您可以向客户显示时间,并确保将其标识为 UTC 时间。这将减轻关于那个时间究竟是什么的任何差异或歧义。

DateTime serverTimeRaw = myService.GetServerTime();
DateTime serverTimeUTC = new DateTime(serverTimeRaw.Ticks, DateTimeKind.Utc);
Console.WriteLine(serverTimeUTC); // Prints server time as UTC time

如果您确实需要在适当的时区中表示时间,则需要将时区信息与 DateTime 一起发送。我建议创建一个封装这两条信息的类型,并返回它,而不是 DateTime 本身。时区信息不是 DateTime 的固有组件。这是两个独立的关注点,只有在实际组合时才提供复合含义。
class ZonedDateTime
{
public DateTime DateTimeUtc { get; set; }
public TimeZoneInfo TimeZone { get; set; }

public DateTime ToDateTime()
{
DateTime dt = TimeZoneInfo.ConvertTime(DateTimeUtc, TimeZone);
return dt;
}
}

// ...

ZonedDateTime zdt = myService.GetServerZonedTime();
DateTime serverTimeActual = zdt.ToDateTime();

关于WCF根据时区自动转换时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1356384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com