繁体   English   中英

将mm / dd / yyyy中的DateTime转换为yyyy-dd-mm中的DateTime

[英]Convert DateTime in mm/dd/yyyy to DateTime in yyyy-dd-mm

我想从一个转换DateTimeMM/dd/yyyy另一个DateTimeyyyy-dd-MM

我可以使用Date.Parse().ToString("yyyy-MM-dd")yyyy-dd-MM的形式获取string

但是,当我使用Convert.ToDateTime()Date.Parse()string转换回DateTime ,它只是将string转换回DateTime形式为MM/dd/yyyy HH:mm:ss

DateTime的表示形式之间没有区别。 实际上, DateTime是许多刻度,可以用您想要的任何形式表示。

根据您的答案-如果您需要使用某种格式将DateTime字符串化-您应该在需要的地方指定所需的格式。

我想将某种格式的日期时间转换为另一种格式的日期时间在技术上是错误的,因为该格式与DateTime字符串表示有关。

为什么我不能使用DateTime.Parse()yyyy-dd-MM格式的字符串转换为DateTime

  • DateTime.Parse通过使用当前区域性的约定来解析日期和时间字符串。

  • 要跨计算机和可能的文化边界以自定义/固定格式解析日期和时间字符串,可以使用DateTime.ParseExact

因此,要将yyyy-dd-MM的字符串转换为DateTime ,可以使用:

var d = DateTime.ParseExact("2016-31-12", "yyyy-dd-MM", CultureInfo.InvariantCulture); 

同样如MSDN中所述,由于日期和时间的字符串表示必须符合公认的模式,因此在调用parse方法解析用户输入时应始终使用异常处理,或者考虑使用TryParseTryParseExact

更多信息:

我认为DateTime总是以您的系统格式显示日期。 也就是说,如果将系统格式设置为yyyy-dd-MM,它将以该格式显示日期。

如果必须在ui上显示日期,请更好地使用格式化的字符串。

但是,如果要执行任何操作(天气比较或任何其他操作),请使用DateTime。 所有的DateTime将始终为系统格式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM