2010-10-04 137 views
1

上我有一个很大的问题,我不知道如何解决它问题与DateTime.Now服务器

我创建了一个Web应用程序,并在美国的服务器主机它,谁访问该web应用程序的用户来自埃及

的问题,我使用DateTime.Now方法在应用程序内和该方法返回使用它在埃及

我怎样才能解决这个问题美国服务器不是机器的时间的时间?请您尽快

感谢帮助我在提前

回答

5

嗯,你可以通过使用DateTime.UtcNow,转让到客户端,然后在客户端执行相关的时区转换开始。这通常是一种合理的工作方式 - 只要您可以在客户端进行处理(例如在JavaScript中)。

另外,请用户自己的时区,这样你就可以成为它使用本地时间页面,使用TimeZoneInfo。当然,如果你知道全部你的用户在埃及,你可能只是硬编码。

+0

感谢Mr.Jon,做你的意思是我在我的应用程序中使用DateTime.UtcNow方法的话,我可以定义与埃及的时区中的变量,例如= 2那么我添加此值DateTime.UtcNow我每次插入数据到数据库 – 2010-10-04 11:01:56

+1

@Amira Elsayed时间 - 除非你的用户永远是你可能想在同一时区将时间作为通用时间存储在数据库中。 – 2010-10-04 11:11:43

+1

@Amira:正如詹姆斯所说,它通常是保持数据库为UTC的一个好主意。 *显示*数据时执行转换。 – 2010-10-04 11:13:45

0

嗯,你可以使用DateTime.UTCNow,然后转换为本地时间。

+0

转换到当地时间不会这样做,因为这将是美国本地。 – 2010-10-04 11:06:07

+0

我的意思是,转换到所需的当地时间。在这种情况下,埃及时间。 – Scott 2010-10-04 11:07:49

3

您需要的日期时间值转换为用户的时区。一个简单的方法来做到这将是调用ConvertTime并传入所需的时区,如下所示:

DateTime now = TimeZoneInfo.ConvertTime(DateTime.UtcNow, 
    TimeZoneInfo.FindSystemTimeZoneById("Egypt Standard Time")); 
+0

[这里](https://msdn.microsoft.com/en-us/library/ms912391%28v=winembedded.11%29.aspx)是''msdn'时区指数Values',可以帮助别人。 – stom 2015-12-02 11:26:48