字符串帮助中的日期。我可以转换为我想要的字符串,但我无法转换回来

时间:2010-07-30 18:17:54

标签: c# asp.net string datetime datetime-format

我有一个我需要转换回日期的字符串。我可以调用.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()正确,如果它不能从相同的字符串派生日期输出。

5 个答案:

答案 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 );