我有一个很大的问题,我不知道如何解决它
我创建了一个Web应用程序,并将其托管在美国服务器以及从埃及访问此Web应用程序的用户
我在应用程序中使用DateTime.Now方法的问题和此方法返回美国服务器的时间而不是在埃及使用它的机器的时间
我该如何解决这个问题?请尽快帮助我
先谢谢
答案 0 :(得分:5)
好吧,您可以先使用DateTime.UtcNow
,将 转移到客户端,然后在客户端执行相关的时区转换。这通常是一种合理的工作方式 - 只要您可以在客户端进行处理(例如在JavaScript中)。
或者,询问用户他们的时区,以便您可以使用TimeZoneInfo
提供使用当地时间的页面。当然,如果您知道所有您的用户都在埃及,您可能只是硬编码。
答案 1 :(得分:3)
您需要将日期时间值转换为用户的时区。一种简单的方法是调用ConvertTime
并按如下方式传入所需的时区:
DateTime now = TimeZoneInfo.ConvertTime(DateTime.UtcNow,
TimeZoneInfo.FindSystemTimeZoneById("Egypt Standard Time"));
答案 2 :(得分:2)
使用UTS生成时间,使其成为标准,然后根据用户的位置或首选项进行显示。
您可能还想阅读此内容: Creating a DateTime in a specific Time Zone in c# fx 3.5
答案 3 :(得分:0)
好吧,您可以使用DateTime.UTCNow然后转换为当地时间。