Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
asp.net ConvertTimeFromUtc位于.ASPX文件内_Asp.net - Fatal编程技术网

asp.net ConvertTimeFromUtc位于.ASPX文件内

asp.net ConvertTimeFromUtc位于.ASPX文件内,asp.net,Asp.net,在.aspx文件中,我需要将获取的日期转换为本地日期,因为它存储为UTC <asp:SqlDataSource ID="SqlDS1" runat="server" ConnectionString="<%$ ConnectionStrings:phiSQL %>" SelectCommand="select ID, AnalasisDate from ProgTbl"></asp:SqlDataSource>

在.aspx文件中,我需要将获取的日期转换为本地日期,因为它存储为UTC

     <asp:SqlDataSource ID="SqlDS1" runat="server" ConnectionString="<%$ ConnectionStrings:phiSQL %>"                
    SelectCommand="select ID, AnalasisDate from ProgTbl"></asp:SqlDataSource>

        <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDS1" Width="1200px"
    AutoGenerateColumns="False"  OnRowCommand="GridView1_OnRowCommand" 
    AllowSorting="True">
       <Columns>
        <asp:BoundField DataField="ID"  HeaderText="Identification"/>
        <asp:BoundField DataField="AnalasisDate"  HeaderText="Time Stamp"/>
         ...
将执行此操作,但不确定如何将其合并到.aspx文件中

我尝试了以下方法:

     <Columns>  

       <asp:TemplateField HeaderText="Time Stamp"/>
         <ItemTemplate>
          <%= TimeZoneInfo.ConvertTimeFromUtc(AnalasisDate, TimeZoneInfo.FindSystemTimeZoneById(Session["Timezone"].ToString()))  %>
         </ItemTemplate>

        </asp:TemplateField>


但获取的消息表明此上下文中不支持代码块。

您可以使用以下语法:

<%= [your code]  %>

例如:

<%= TimeZoneInfo.ConvertTimeFromUtc(result.AnalasisDate.Value, tz)  %>

可能使用模板字段

<asp:TemplateField HeaderText="Time Stamp"/>
<ItemTemplate>
    <%# Convert.ToDateTime(Eval("AnalasisDate")).ToLocalTime() %>
</ItemTemplate>
</asp:TemplateField>

@codingbiz=>这个答案将适用于服务器端<代码>ToLocalTime() 将时间转换为服务器的时区。当您希望从服务器获取时区并且您知道服务器的位置时,这可能是一个解决方案

如果你想从客户端显示时间,你必须做更多的事情。比如通过输入值询问用户在哪个时区。或者,如果您知道用户在哪里,您可以使用他的时区id:

<%= DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc,
TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time")) %>

在这里您可以找到所有时区ID:

您好,我添加了其他代码,但仍然收到一个错误。请通知你好,我添加了额外的代码,但仍然得到一个错误。请注意,这不是语法问题。因为这很有效
<%= DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc,
TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time")) %>