Datetime 转换失败【非常邪门】

星际 2011-08-01 04:50:45
大家好,目前遇到一个邪门的问题,环境:.Net Framework 2.0 + Windows 2000

以下是测试程序做的代码片段


textBox1.AppendText(DateTime.Now.ToString() + Environment.NewLine);
textBox1.AppendText("Try Convert datetime:2011/8/1 14:22:30"+Environment.NewLine);
try
{
textBox1.AppendText(Convert.ToDateTime("2011/8/1 14:22:30").ToString() + Environment.NewLine);
textBox1.AppendText("Try Convert datetime successfully" + Environment.NewLine);
}
catch(Exception ex)
{
textBox1.AppendText("Try Convert datetime has error:" + ex.ToString() + Environment.NewLine);
}


输出结果:

2011/08/01 16:44:03
Try Convert datetime:2011/8/1 14:22:30
Try Convert datetime has error:System.IndexOutOfRangeException: 索引超出了数组界限。
在 System.Globalization.DateTimeFormatInfo.InsertHash(TokenHashValue[] hashTable, String str, TokenType tokenType, Int32 tokenValue)
在 System.Globalization.DateTimeFormatInfo.CreateTokenHashTable()
在 System.Globalization.DateTimeFormatInfo.Tokenize(TokenType TokenMask, TokenType& tokenType, Int32& tokenValue, __DTString& str)
在 System.__DTString.GetSeparatorToken(DateTimeFormatInfo dtfi)
在 System.DateTimeParse.Lex(DS dps, __DTString& str, DateTimeToken& dtok, DateTimeRawInfo& raw, DateTimeResult& result, DateTimeFormatInfo& dtfi)
在 System.DateTimeParse.TryParse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles, DateTimeResult& result)
在 System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
在 System.DateTime.Parse(String s, IFormatProvider provider)
在 System.Convert.ToDateTime(String value)
在 TestTime.Form1.button1_Click(Object sender, EventArgs e)


为什么时间格式不能被识别?查看了区域设置,都是选择的中国。邪门了。。。
...全文
217 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
星际 2011-08-01
  • 打赏
  • 举报
回复
直接这样,都报错,应该和系统设置的格式没关系了吧。

Convert.ToDateTime(DateTime.Now.ToString()).ToString()
杨友山 2011-08-01
  • 打赏
  • 举报
回复
这么碰到过,好像平时都是 mm-dd-啥的吧
山之魂2 2011-08-01
  • 打赏
  • 举报
回复
你写的格式,要跟你的系统设置的格式一致才行,用斜杠还是横杠,月份1位还是2位都要符合才行
暖枫无敌 2011-08-01
  • 打赏
  • 举报
回复
2011/08/01 16:44:03
Try Convert datetime:2011/8/1 14:22:30

看见没有,都是0惹得祸。

textBox1.AppendText(Convert.ToDateTime("2011/8/1 14:22:30").ToString("yyyy/MM/dd HH:mm:ss") + Environment.NewLine);

showjim 2011-08-01
  • 打赏
  • 举报
回复
应该是win2000有问题吧
果-果 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tcdongting 的回复:]
楼上,我想问的是为什么Convert.ToDateTime("2011/8/1 14:22:30").ToString()报错

tryparse也一样,换成2011-8-1 14:22:30也是一样
[/Quote]
试一下这样呢:Convert.ToDateTime("2011/8/1 14:22:30").ToString("yyyy/MM/dd HH:mm:ss")
星际 2011-08-01
  • 打赏
  • 举报
回复
楼上,我想问的是为什么Convert.ToDateTime("2011/8/1 14:22:30").ToString()报错

tryparse也一样,换成2011-8-1 14:22:30也是一样

sdl2005lyx 2011-08-01
  • 打赏
  • 举报
回复
直接使用:

DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧