首页 > 解决方案 > 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);
}

标签: c#jqueryjsonasp.net-mvc

解决方案


您可以在一行代码中完成此操作。

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属性。


推荐阅读