繁体   English   中英

如何将字符串转换为日期时间

[英]How to convert a string to a datetime

我建立了一个查询,该查询使用均为datetime类型的开始日期和结束日期。 然后,我还有另一个名为innerPastTime的变量,该变量应该接收字符串并基于返回的多个小时进行查询。 例如,如果用户输入24,它将在24小时内搜索。

C#

withinthepast.Text = History.QueryInfo.WithinPastTime;
                startdatetext.Text = DateTime.Parse(History.QueryInfo.StartDate).ToString("M/d/yyyy");
                enddatetext.Text = DateTime.Parse(History.QueryInfo.EndDate).ToString("M/d/yyyy");

ASP视图

<div class="row-fluid">
                        <div class="span8">

                            <div class="row">
                                <div class="span1">
                                    <asp:RadioButton ID="RadioButton1" runat="server" Checked="True" GroupName="DateQuery"/>
                                </div>
                                <div class="span11">
                                    <span class="label">Start Date</span><br />
                                    <asp:TextBox ID="startdatetext" runat="server" MaxLength="10"></asp:TextBox>
                                    <asp:Image ID="startimage" runat="server" ImageUrl="Images/calender16.png" />
                                    <!-- note: do not add and ID attribute to the AJAX:CalenderExtender -->
<%--                                    <ajax:CalenderExtender runat="server" TargetControlID="startdatetext" PopupButtonID="startimage" />--%>
                                </div>
                            </div>
                            <div class="row">
                                <div class="span1">
                                </div>
                                <div class="span11">
                                    <span class="label">&nbsp;End Date&nbsp;</span><br />
                                    <asp:TextBox ID="enddatetext" Enabled="true" runat="server" MaxLength="10"></asp:TextBox>
                                    <asp:Image ID="endimage" runat="server" ImageUrl="Images/calender16.png" />
                                    <!-- note: do not add and ID attribute to the AJAX:CalenderExtender -->
<%--                                    <AJAX:CalenderExtender runat="server" TargetControlID="enddatetext" PopupButtonID="endimage" />--%>
                                </div>
                            </div>
                            <br />
                            OR
                            <br />
                            <br />                    
                            <div class="row">
                                <div class="span1">
                                    <asp:RadioButton ID="RadioButton2" runat="server" GroupName="DateQuery"/>
                                </div>
                                <div class="span11">
                                    <span class="label">Within the past (hours)</span><br />
                                    <asp:TextBox ID="withinthepast" Enabled="true" runat="server" Text="1"></asp:TextBox>
                                    <asp:Image ID="upimage" runat="server" ImageUrl="Images/arrowup16.png" />
                                    <asp:Image ID="downimage" runat="server" ImageUrl="Images/arrowdown16.png" />
                                    <!-- note: do not add and ID attribute to the NumericUpDownExtender -->
                                    <ajax:NumericUpDownExtender runat="server" Minimum="1" Width="75"
                                        TargetControlID="withinthepast" TargetButtonUpID="upimage" TargetButtonDownID="downimage" />
                                </div>
                            </div>

                        </div>
                        <div class="span4">
                            <div class="btn-group btn-group-vertical" data-toggle="buttons-checkbox">
                                <span class="label" style="margin-top: 5px;">Dates in Range</span>
                                <asp:CheckBoxList ID="timerange" runat="server" style="border-style:solid;float:left;border-width:1px;margin:10px;" Width="120px">
                                    <asp:ListItem Text="Scheduled At" Selected="True"></asp:ListItem>
                                    <asp:ListItem Text="Scheduled For" Selected="True"></asp:ListItem>
                                    <asp:ListItem Text="Submitted" Selected="True"></asp:ListItem>
                                    <asp:ListItem Text="Started" Selected="True"></asp:ListItem>
                                    <asp:ListItem Text="Completed" Selected="True"></asp:ListItem>
                                </asp:CheckBoxList>
                            </div>
                        </div>
                    </div>

    DateTime withinthepast = Date.Evaluate(m_Owner.QueryInfo.WithinPastTime, DateTime.Now(- **this is where my withinthepastvariable would go telling DateTime.Now how many hours to subtract));

有什么想法吗?

您可以在lastPastTime内将其切换为int,然后可以使用AddHours ()方法,如下所示:

DateTime.Now.AddHours(withinPastTime);

您可以传递负值以使其回到过去。

这还将限制任何输入为有效数字,其他字符串将引发异常。

我认为您需要的是AddHours

DateTime.Now.AddHours(-pastHours)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM