private void Page_Load(object sender, System.EventArgs e)
 {
  // 在此处放置用户代码以初始化页面
    double utc = Convert.ToDouble(Billing107.WebConfig.GetCommonData.ClientTimeZone);
    Response.Write(-utc+"</br>");
    if (Session["ID"]==null)
    Response.Redirect("../login.aspx");
this.MSG.Text = "";
if(!this.IsPostBack)
   {
#region 资源处理
     ...
this.btn_submit.Value = this.RM.GetString("BtnQuery");
#endregion
     this.txt_pay_date_begin.Date = System.DateTime.Today.Date;
this.txt_pay_date_end.Date   = System.DateTime.Today.Date;
   }}
private void btn_submit_ServerClick(object sender, System.EventArgs e)
{....

我执行查询以后,打印出的UTC=8,在PC上更改时区成GMT6后,第一次刷新,打印出来的UTC仍然是8,第2次刷新才打印出6来,请问是什么原因呢

解决方案 »

  1.   

    在Page_Load(object sender, System.EventArgs e)下有TimeZone localZone = TimeZone.CurrentTimeZone;
    DateTime currentDate = DateTime.Now;
    TimeSpan currentOffset = localZone.GetUtcOffset( currentDate );
    Response.Write(currentOffset+"</br>");
    打印出来的是8
    我在PC里更改时区为7后,刷新,重登陆,打印出来的还是8
    需要重新启动IE才变为7。大家帮补解释一下啊
      

  2.   

    更改后应该直接输出,而不是在Page_Load中
    而Page_Load中只应在第一次打开时输出
      

  3.   

    刷新的时候,不都执行到Page_Load 了么?
    不知道TimeSpan currentOffset = localZone.GetUtcOffset( currentDate ); 是怎么根据currentDate获取到UTC的,currentOffset应该跟currentDate无关啊