asp.net时间戳问题

时间:2011-08-31 08:51:25

标签: asp.net

这是我用来存储来自asp.net 2.0 webform的记录信息的代码

         scmd.Connection = scon; //Connection string
        SqlParameter p = scmd.CreateParameter(); 
        recodName = txtrecordname.Text;  //form field
        todaysdate = DateTime.Parse(txtFrom.Text); 
        DateTime now = DateTime.UtcNow;
        AddParameters("@record", recodName);  //adding parameter to stored procedure
        AddParameters("@date", todaysdate);
        AddParameters("@timeinfo", now);
        scmd.CommandText = "sp_InsertRecord";
        scmd.CommandType = CommandType.StoredProcedure;
        scon.Open();
        int i=scmd.ExecuteNonQuery();
    if (i > 0)
        {
            result.Text = "Record Inserted RecordName : " + recodName; //Label displaying  recordinfo
            dateinfo.Text = "Record inserted on (TimeStamp Info) : " + now;  //label displaying time info when user inserted record
        }
        GridView1.DataBind();

此Web应用程序托管在服务器上,时区为(UTC + 05:30)Chennai,Kolkata,Mumbai,New Delhi, 现在来自另一个系统的用户访问其时区为(UTC + 01:00)中非西部的应用程序, 如您所见,我已将'datetime现在作为Utcnow'插入,但当用户查看插入的记录时,它必须在其本地datetimeformat中

即 dateinfo.Text =“TimeStamp Info:”+ now; //此标签应显示本地时间信息,当前显示托管应用程序的服务器本地时间

Thanxs提供任何帮助

2 个答案:

答案 0 :(得分:1)

从数据库加载DateTime时(你说你在那里存储了UTC),你需要明确指定这个时间的Kind

DateTime dateTimeFromDatabase = LoadDateTimeValueFromDatabase();
DateTime utcDate = DateTime.SpecifyKind(dateTimeFromDatabase, DateTimeKind.Utc);

然后,只要您正确设置了网站访问者的文化,您就可以使用DateTime中的.ToLocalTime()将Utc值显示为本地时间:

DateTime localTimeToDisplay = utcDate.ToLocalTime();

然后使用localTimeToDisplay变量进行数据绑定,您就已经完成了设置。

更新:要显示当前时间,您只需执行以下操作:

 dateinfo.Text = "TimeStamp Info : " + DateTime.UtcNow.ToLocalTime();

由于UtcNow已将日期时间类型设置为UTC。

但是,您需要为客户端设置正确的文化。所以你需要手动或者在web.config中设置它:

<system.web>
    <globalization culture="auto" />
<system.web>

答案 1 :(得分:0)

使用javascript获取客户端系统中的当前时间并将其放入javascript变量中。 如何做到这一点可以在这里找到:
http://www.quackit.com/javascript/javascript_date_and_time_functions.cfm

然后将javascript变量值分配给隐藏字段变量并在服务器端访问它。 如何在http://codeasp.net/blogs/joydeep157/microsoft-net/81/accessing-javascript-variable-from-code-behind-and-accessing-code-behind-variable-from-javascript

后面的代码中访问javascript变量

现在,您的服务器变量中有客户端时间。