我有一个文本框,用户应该在其中输入格式为dd/mm/yyyy
的日期,该日期存储为yyyy/mm/dd
在数据库中。
所以我希望用户以 dd/mm/yyyy 格式输入日期,稍后我想转换为 yyyy/mm/dd 以便我可以查询数据库。
如何将用户输入的日期 dd/mm/yyyy
转换为 yyyy/mm/dd
?
最佳答案
快速但可能很脏:
string reformattedDate = DateTime.ParseExact(textBox1.Text, "dd/MM/yyyy", null).ToString("yyyy/MM/dd");
当然,这是假设文本框的内容始终采用假定的格式,因此应该在之前检查它们以确保这一点。还有一种更安全的方法,不需要额外的检查:
DateTime result;
if(DateTime.TryParseExact(textBox1.Text, "dd/MM/yyyy", null, System.Globalization.DateTimeStyles.None, out result)
{
// Here you can safely use result
string reformattedDate = result.ToString("yyyy/MM/dd");
} else {
// Screw the user
}
这将尝试解析文本框的内容并通过输出结果
将其返回给您,如果成功,它将返回true。否则,您可以放心,输入要么不是假定的格式,要么不是有效的日期。
另请注意,如果转换失败,ParseExact
将抛出 ArgumentNullException
或 ArgumentException
。
I have a text box in which the user is supposed to enter a date in dd/mm/yyyy format, this date is stored as yyyy/mm/dd in the database.
对此的明显答案是:在处理字符串转换之前使用 DateTimePicker 和参数化查询。从长远来看,它会为您省去很多麻烦。
关于c# - 如何将日期从格式 "dd/mm/yyyy"转换为 "yyyy/dd/mm"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4498008/