如何在c#中连接日期和时间?

时间:2011-05-03 22:55:39

标签: c# asp.net

Higuys,

我有一个文本框,用户选择日期(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 ,所以我必须将用户输入“连接”成一个真实的日期时间格式......

我看到一个DateTime的构造函数,它接受args:年,月,日,小时,分钟,秒,但是这需要我解析用户输入并在这些时段中拆分....

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

5 个答案:

答案 0 :(得分:6)

您可以使用DateTime.ParseExact()

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

答案 1 :(得分:6)

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

    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/

答案 2 :(得分:2)

使用DateTime.ParseExact方法。

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

result = DateTime.ParseExact(dateString, format, provider);

答案 3 :(得分:1)

你可以这样做:

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

答案 4 :(得分:0)

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