2016-09-22 246 views
0

我想将当地时间转换为GMT + 10时间。我正在使用asp.net,我的网站是以azure托管的。在获得该日期后&时间应该在下面的代码中设置为ActivityDate。将日期和时间转换为GMT + 10日期和时间

TimeZoneInfo timeZoneInfo; 
DateTime dateTime; 
timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("E. Australia Standard Time"); 
dateTime = TimeZoneInfo.ConvertTime(DateTime.Now, timeZoneInfo); 
DateTime AusDateTime= dateTime.ToString("yyyy-MM-dd HH-mm-ss"); 


_activityService.InsertActivity(new ActivityDto { UserName = HttpContext.Current.User.Identity.Name, ActivityType = ActivityConstants.ACT_TYPE_USR_MGT, ActivityDescription = ActivityConstants.USR_MGT_DESCR_FORGOT_PW, ActivityDate = DateTime.Now }); 
+3

那么你不*使用* AusDateTime ...你仍然在使用'ActivityDate = DateTime.Now'。 (尽管我使用'DateTime.UtcNow',但我敦促你将当地时区带出图片。) –

+0

正如Jon所说的,当你需要显示时,你应该总是处理UTC时间并从UTC转换到本地时间 –

+0

DateTime.UtcNow适用于我的任务吗? –

回答

0

我发现了我的问题的答案。

var ActivityDate = TimeZoneInfo.ConvertTimeFromUtc(DateTime.Now.ToUniversalTime(), TimeZoneInfo.FindSystemTimeZoneById("E. Australia Standard Time")) }); 
相关问题