c# - 如何将日期从格式 "dd/mm/yyyy"转换为 "yyyy/dd/mm"?

标签 c#

我有一个文本框,用户应该在其中输入格式为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 将抛出 ArgumentNullExceptionArgumentException

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/

相关文章:

c# - 如何使用 textfieldParser 编辑 CSV 文件?

c# - 版本之间的接口(interface)变化——如何管理?

c# - 标记助手 `Attributes` 别名

c# - 有条件地将一种源类型映射到两种目标类型

c# - 如何禁用 Telerik GridView 行中的特定单元格

c# - 微星参数检查

c# - DotNetOpenAuth 4 不读取配置值

c# - .Net Core 2 JWT,Angular 2 通过角色授权不起作用

c# - Dictionary.FirstOrDefault() 如何确定是否找到结果

c# - 当原始类超出范围时线程会发生什么