C# 分析字符串到日期时间

C# 分析字符串到日期时间,c#,C#,我正在尝试将状态设置为DateTime.Now>开始约会日期的用户输入值时已过期。下面的解析给出了一个错误,即在将每个变量放入datetime对象之前解析字符串以获取日期。但是我已经解析了字符串以转换为datetime public void updateStatus() { var user_time_start = DateTime.Parse(txtDateStart.Text); var user_time_end = Da

我正在尝试将状态设置为DateTime.Now>开始约会日期的用户输入值时已过期。下面的解析给出了一个错误,即在将每个变量放入datetime对象之前解析字符串以获取日期。但是我已经解析了字符串以转换为datetime

 public void updateStatus()
    {           
        var user_time_start = DateTime.Parse(txtDateStart.Text);
        var user_time_end = DateTime.Parse(txtDateEnd.Text);
        var time_now = DateTime.Now;
        //Set Status of Appointment
        if (time_now > user_time_start || time_now < user_time_end)
        {
            cmboStatus.Text = "EXPIRED";
        }
        else
        {
            cmboStatus.Text = "CURRENT";
        }
    }
请帮我解决这个问题。

我建议使用:


但是,假设这是一个表单应用程序,您可能需要查看该控件。

这里要指出的第一件事是,您真的应该使用TextBox控件为DateTime对象获取用户输入吗

如果使用正确的控件,则无需解析任何内容

通过使用文本框控件,允许用户输入任何内容

开始日期=我的宠物狗

这不是你想要的,是吗

添加两个日期时间选择器控件和一个按钮,并使用以下代码示例:-

namespace DateTimePickerTests
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            DTPStartDate.Format = DateTimePickerFormat.Custom;
            DTPStartDate.CustomFormat = "dd/MM/yyyy";
            DTPStartDate.ShowUpDown = true;

            DTPEndDate.Format = DateTimePickerFormat.Custom;
            DTPEndDate.CustomFormat = "dd/MM/yyyy";
            DTPEndDate.ShowUpDown = true;

        }

        private void button1_Click(object sender, EventArgs e)
        {

            DateTime now = DateTime.Now;
            int result = DateTime.Compare(DTPStartDate.Value, now);

            if (result >= 1)
            {
                label3.Text = "Expired";
            }
            else
            {
                label3.Text = "Not Expired";
            }


        }


    }
}
有关更多信息,请参阅本页:-


你能发布错误的确切文本吗?这就是确切的错误信息吗?听起来不太可能。您试图解析的值是什么?查看您为“用户\时间\开始”和“用户\时间\结束”输入的值。文本框中的日期时间格式似乎无效。这里是一个很好的链接,你可以看看如何格式化DateTime。这将是一个很好的开始学习DateTime可以做的许多不同事情的地方。也许也有帮助。@AlexanderBalte:的确,打得好。对于如何显示信息的更多控制。非常感谢DateTime.TryParse工作正常。
namespace DateTimePickerTests
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            DTPStartDate.Format = DateTimePickerFormat.Custom;
            DTPStartDate.CustomFormat = "dd/MM/yyyy";
            DTPStartDate.ShowUpDown = true;

            DTPEndDate.Format = DateTimePickerFormat.Custom;
            DTPEndDate.CustomFormat = "dd/MM/yyyy";
            DTPEndDate.ShowUpDown = true;

        }

        private void button1_Click(object sender, EventArgs e)
        {

            DateTime now = DateTime.Now;
            int result = DateTime.Compare(DTPStartDate.Value, now);

            if (result >= 1)
            {
                label3.Text = "Expired";
            }
            else
            {
                label3.Text = "Not Expired";
            }


        }


    }
}