如何覆盖子应用程序中服务器的时区

时间:2009-09-18 04:25:24

标签: c# .net timezone

这是一个快速的,我需要在我的应用程序中设置不同的时区而不是IIS上的设置

我想要的只是在AESP而不是SPT中显示特定日期,这是C#.NET 3.5的一种方式吗?

2 个答案:

答案 0 :(得分:2)

尝试TimeZoneInfo.ConvertTime(DateTime dateTime,TimeZoneInfo sourceTimeZone,TimeZoneInfo destTimeZone)

http://msdn.microsoft.com/en-us/library/bb382770.aspx

答案 1 :(得分:0)

我明白了:

DateTimeFormatInfo dtfi = new DateTimeFormatInfo();
dtfi.FullDateTimePattern = "yyyy-MM-ddTHH:mmzzz";
DateTime s = DateTime.Parse(inputstring, dtfi);
s = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(s, "AUS Eastern Standard Time");
TimeZoneInfo tzz = TimeZoneInfo.FindSystemTimeZoneById("AUS Eastern Standard Time");
string timezone = (tzz.IsDaylightSavingTime(s)) ? tzz.DaylightName : tzz.StandardName;

CultureInfo  culture = CultureInfo.CreateSpecificCulture("en-AU");
string output = String.Format("{0} | {1}", s.ToString("f", culture), timezone);

所以输入是:2009-10-13T10:00-7:00
输出是:2009年10月14日星期三凌晨4:00 | AUS东部夏令时

输入为:2009-9-13T10:00-7:00
输出是:2009年9月14日星期一凌晨3:00 | AUS东部标准时间