我正在尝试将DateTime
中的MM/dd/yyyy
转换为DateTime
中的另一个yyyy-dd-MM
我可以使用string
yyyy-dd-MM
但是当我使用Date.Parse().ToString("yyyy-MM-dd")
或Convert.ToDateTime()
将Date.Parse()
转换回string
时,它只是将DateTime
转换回string
} form DateTime
答案 0 :(得分:3)
DateTime
的表现形式之间没有区别。实际上,DateTime
是一些刻度线,可以用你想要的任何形式表示。
根据您的回答 - 如果您需要使用特定格式对DateTime
进行字符串化 - 您应该在需要的地方指定所需的格式。
答案 1 :(得分:3)
说我想将某些格式的日期时间转换为某些其他格式的日期时间在技术上是错误的,因为格式是关于DateTime
的字符串表示。
为什么我无法使用yyyy-dd-MM
将DateTime
格式的字符串转换为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将始终采用系统格式。