解析字符串日期时间
我想设置状态为过期时DateTime.Now>用户输入值开始约会日期。下面的解析给出了一个错误:“在将每个变量放入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";
}
}
请帮助我。
我会建议使用DateTime.TryParse
:
Datetime start;
DateTime end;
if (DateTime.TryParse(txtDateStart.Text, out start)
&& DateTime.TryParse(txtDateEnd.Text, out end))
{
DateTime now = DateTime.Now;
cmbo.Text = (now > start || now < end // inline ternary
? "EXPIRED" // true value
: "CURRENT" // false value
);
}
else { /* Error */ }
然而,假设这是一个形式的应用程序,你可能想看看DateTimePicker
控制。
[DateTime.TryParseExact](http://msdn.microsoft.com/en-us/library/system.datetime.tryparseexact.aspx)也可能有帮助。 –
@AlexanderBalte:确实,很好的电话。以更好地控制信息的呈现方式。 –
非常感谢DateTime.TryParse正常工作。 – Dexter
这里要指出的第一件事情是,如果您真的在使用TextBox控件为用户输入DateTime对象?
如果您使用正确的控件,则无需解析任何内容。
通过使用TextBox控件允许用户输入任何东西!?!
Start Date =“MyPetDog”?
它不是你想要的吗?
添加两个日期TimePicker控件和一个按钮,并使用下面的代码示例: -
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";
}
}
}
}
请参阅本页面了解更多信息: -
http://msdn.microsoft.com/en-us/library/system.datetime.compare.aspx
你能请张贴的确切错误的文字? –
这是*确切的*错误信息?听起来不太可能。你试图解析的价值是什么?请参阅http://tinyurl.com/so-list –
您为user_time_start和user_time_end输入了什么值? – MethodMan