【问题标题】:how to concat date and time in c#?如何在 C# 中连接日期和时间?
【发布时间】:2011-05-03 22:55:39
【问题描述】:

各位,

我有一个文本框,用户选择 日期 (MM/dd/yyyy) 和另一个文本框,其中选择插入 时间 (hh:mm)。

<tr>
            <td>
                <asp:Label ID="Label1" runat="server" CssClass="cp_title">Event Date:</asp:Label>
            </td>
            <td>
                <asp:Label ID="Label2" runat="server" CssClass="cp_title">Event Time(hh:mm):</asp:Label>
            </td>
        </tr>
        <tr>
            <td>
                <asp:TextBox ID="txtEventDate" runat="server">
                </asp:TextBox>
                <cc1:CalendarExtender ID="cldEventDate" runat="server" TargetControlID="txtEventDate"
                    PopupPosition="BottomLeft" Format="MM/dd/yyyy">
                </cc1:CalendarExtender>
            </td>
            <td>
                <asp:TextBox runat="server" ID="txtEventTime"></asp:TextBox>
            </td>
        </tr>

在数据库中,我有一个 日期时间的单列,因此我必须将用户输入“连接”成真正的日期时间格式...

我看到 DateTime 的构造函数,它以 args 为参数:年、月、日、小时、分钟、秒, 但这需要我解析用户输入并在这些时间段内拆分......

您知道更简单的解决方案吗?

【问题讨论】:

标签: c# asp.net


【解决方案1】:

你可以使用DateTime.ParseExact():

DateTime.ParseExact(txtEventDate.Text + " " + txtEventTime.Text,
                    "MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture)

【讨论】:

  • CultureInfo.InvariantCulture 是什么意思?
【解决方案2】:

在尝试任何类型的连接之前,您可能应该验证和/或修剪文本框中的文本。

    string _eventDate = "01/01/2011";  //in your case txtEventDate.Text
    string _eventTime = "09:00 AM"; //in your case txtEventTime.Text

    DateTime eventDate = Convert.ToDateTime(String.Format("{0} {1}",(_eventDate), _eventTime)));

我强烈建议使用 JqueryUI 为您提供日期和时间选择器。 演示: http://jqueryui.com/demos/datepicker/

http://fgelinas.com/code/timepicker/

【讨论】:

    【解决方案3】:

    使用DateTime.ParseExact 方法。

    string dateString = txtEventDate.Text + " " + txtEventTime.Text;
    string format = dateFormat + " " + timeFormat;  
    DateTime result;
    CultureInfo provider = CultureInfo.InvariantCulture;
    
    result = DateTime.ParseExact(dateString, format, provider);
    

    【讨论】:

      【解决方案4】:

      你可以这样做:

      string date = "1/2/2011";
      string time = "12:15";
      DateTime temp = Convert.ToDateTime(date + " " + time);
      

      【讨论】:

        【解决方案5】:

        您可以将DateTime.ParseExact 方法与适当的格式字符串和连接的用户输入一起使用。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-07-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多