c# - String Date 使用 ParseExact 转换 DateTime
问题描述
我有一个字符串,它是一种DD/MM/YYYY
风格。(例如:11/07/2018)
我需要将此转换为DateTime
格式和YYYY-MM-DD
样式。
我试过用DateTime.Parse
但不能
if (!String.IsNullOrEmpty(fromDate))
{
frm = DateTime.ParseExact(fromDate, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None);
}
else if(!String.IsNullOrEmpty(toDate))
{
todt = DateTime.ParseExact(toDate, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None);
}
解决方案
您可以在一行代码中完成此操作。
var newDateString = DateTime.ParseExact(myDateString, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None).ToString("yyyy-MM-dd");
请记住,DateTime
实例是没有格式的数据结构。在处理日期和时间时,最好仅在需要呈现/输出值以供人类阅读时才恢复为人类可读的字符串。对于其他任何事情,包括对支持类型(如关系数据库)的存储系统的持久性,将值保留为DateTime
类型。
示例:如果您yyyy-MM-dd
想要将其持久化到 Sql Server,那么您应该在解析后停止(而不是调用 ToString)。然后,您可以直接将DateTime
实例分配给命令参数的Value
属性。