我有一个字符串需要转换回日期。我可以调用 .ToString("yyyyMMdd") 并获取我想要的字符串。我的问题是如何将其转换回日期?我正在尝试类似以下的操作,但没有成功。
DateTime d;
var formatInfo = new DateTimeFormatInfo {ShortDatePattern = "yyyyMMdd"};
if (DateTime.TryParse(details.DetectionTime.Date, formatInfo, DateTimeStyles.None, out d))
{
lit.Text = d.ToShortTimeString(); //would like 07/30/2010 as the text
}
我之前从未使用过 DateTimeFormatInfo 如果这不是很明显的话。有人能指出我正确的方向吗?我知道我可能会使用 substring 并创建一个新的 DateTime(y, m, d) 等...我只是想知道,因为 c# 正确解释了 .ToString() ,如果它不能从同一个字符串中派生日期它输出。
最佳答案
DateTime.ToString("yyyyMMdd")
的逆向是 DateTime.TryParseExact
,将 "yyyyMMdd"
作为格式字符串传递。
IFormatProvider
有点转移注意力。您通常会通过:
Thread.CurrentThread.Culture
,如果你正在解析用户输入的日期,你应该在什么时候服从用户的日期偏好- 或
CultureInfo.InvariantCulture
,如果您要解析程序提供的日期,此时您的行为不应取决于用户设置的偏好
关于c# - 来自字符串帮助的日期。我可以转换成我想要的字符串,但我无法转换回来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3374294/