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

时间:2015-12-30 20:57:57

标签: c# datetime

我正在尝试将DateTime中的MM/dd/yyyy转换为DateTime中的另一个yyyy-dd-MM

我可以使用string

以[{1}}格式获得yyyy-dd-MM

但是当我使用Date.Parse().ToString("yyyy-MM-dd")Convert.ToDateTime()Date.Parse()转换回string时,它只是将DateTime转换回string } form DateTime

3 个答案:

答案 0 :(得分:3)

DateTime的表现形式之间没有区别。实际上,DateTime是一些刻度线,可以用你想要的任何形式表示。

根据您的回答 - 如果您需要使用特定格式对DateTime进行字符串化 - 您应该在需要的地方指定所需的格式。

答案 1 :(得分:3)

我想将某些格式的日期时间转换为某些其他格式的日期时间在技术上是错误的,因为格式是关于DateTime的字符串表示。

为什么我无法使用yyyy-dd-MMDateTime格式的字符串转换为DateTime.Parse()

  • DateTime.Parse使用当前文化的惯例解析日期和时间字符串。

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

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

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

同样如MSDN中所述,因为日期和时间的字符串表示必须符合已识别的模式,所以在调用解析方法来解析用户输入或考虑使用TryParse或{时,应始终使用异常处理{1}}。

更多信息:

答案 2 :(得分:-1)

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

如果你必须在ui上显示日期,最好像你一样使用格式化字符串。

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