我有一个我需要转换回日期的字符串。我可以调用.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。有人能指出我正确的方向。我知道我可能会使用子字符串并创建一个新的DateTime(y,m,d)等...我只是想知道因为c#解释.ToString()正确,如果它不能从相同的字符串派生日期输出。
答案 0 :(得分:7)
DateTime.ToString("yyyyMMdd")
的反面是DateTime.TryParseExact
,将"yyyyMMdd"
作为格式字符串传递。
IFormatProvider
有点像红鲱鱼。你通常会通过:
Thread.CurrentThread.Culture
,如果您正在解析用户输入的日期,那么您何时应该遵守用户的日期偏好CultureInfo.InvariantCulture
,如果您正在解析程序提供的日期,那么您的行为不应取决于用户设置的偏好答案 1 :(得分:2)
使用d.ToString("MM/dd/yyyy")
有关更多选项,请查看http://msdn.microsoft.com/en-us/library/zdtaw1bw.aspx
编辑:读错了
使用DateTime.Parse()将字符串解析为日期时间。 http://msdn.microsoft.com/en-us/library/1k1skd40.aspx
您还可以使用DateTime.TryParse查看字符串是否能够先转换为日期。 http://msdn.microsoft.com/en-us/library/system.datetime.tryparse.aspx
或者您也可以使用Convert.ToDateTime()
答案 2 :(得分:1)
如果你希望在将DateTime变量发送到字符串之后将其返回,那么请省去麻烦,只需将范围内的实际DateTime变量缓存或传递到以后需要的地方,并且不要将文本转换回DateTime类..
抱歉,我刚才意识到这不符合你的要求,所以你要找的是:
DateTime.ParseExact(someDateTime, "the format string you used to .tostring generating the string", null);
答案 3 :(得分:1)
Convert.ToDateTime( “2010年7月30日”);
答案 4 :(得分:1)
我假设你的意思是将字符串转换为DateTime格式。如果是这样,请使用:
DateTime yourStringConverted = Convert.ToDateTime( yourString );