有时间吗?

时间:2011-01-18 13:44:10

标签: c# datetime

我被困在一个洞里,我不能为我的生活挖掘它自己。

这是一个高度美学的问题,但我喜欢从我的代码中得到我要求的东西。 我正在尝试将表示时间的字符串解析为DateTime变量,然后发送到textBox以及我的LINQ查询。

我想以这种格式表示我的时间:“yyyy-MM-dd hh:mm:ss”这是我从我的Select查询得到的,但是一旦我尝试解析用户写的内容在textBox到DateTime中,它给了我“1/13/2011 12:00:00 AM”,即使它的格式为“2011-01-13 00:00:00”。

我觉得我已经尝试了一切来完成这项工作,但必须有一个解决方案,你能帮助我找到它吗?我想用什么IFormatProvider?

这是我试过的:

//textBox1.Text =   "2011-01-13 00:00:00";
DateTime = TimeFrom;    
TimeFrom = DateTime.ParseExact(textBox1.Text, "yyyy-MM-dd hh:mm:ss", null);
TimeFrom = DateTime.ParseExact(textBox1.Text, CultureInfo.CurrentCulture.DateTimeFormat.GetAllDateTimePatterns(), new CultureInfo("sv-SE"), DateTimeStyles.None); 
TimeFrom = DateTime.ParseExact(textBox1.Text, CultureInfo.CurrentCulture.DateTimeFormat.GetAllDateTimePatterns(), new CultureInfo("sv-SE"),System.Globalization.DateTimeStyles.AssumeUniversal);
TimeFrom = DateTime.ParseExact("2008-10-01 16:44:12.000", "yyyy-MM-dd HH:mm:ss.fff", CultureInfo.CreateSpecificCulture("en-US"));
textBox1.Text = TimeFrom.ToString();

但它们都没有给我我渴望的格式。



更新:
从我宣布我的DateTime变量到我想将textBox1.Text值从“sv-SE”解析为“en-EN”的时间看起来,当前文化似乎有所改变,这就是为什么它决定改变方式我的时间格式化了。这不是我在我的代码中所做的事情。关于为什么的任何想法?

为什么它决定忽略我的(IFormatProvider) new CultureInfo("sv-SE",true),这是我还没想到的东西。

如果您有任何建议,请告诉我。

5 个答案:

答案 0 :(得分:4)

textBox1.Text = TimeFrom.ToString("yyyy-MM-dd hh:mm:ss");

或类似的东西:

textBox1.Text = TimeFrom.ToString(new CultureInfo("sv-SE"));

取决于您的确切需求。

答案 1 :(得分:3)

解析意味着使用格式获取字符串并将其转换为强类型的DateTime对象。

要将强类型DateTime对象转换为字符串,请使用格式调用ToString

TimeFrom.ToString("yyyy-MM-dd hh:mm:ss");

编辑:也许你只需要在开始做事之前设置Thread.CurrentThread.CurrentCulture = new CultureInfo("sv-SE")。这是一个ASP.NET应用程序吗?

答案 2 :(得分:1)

你试过吗

TimeFrom.ToString("yyyy-MM-dd hh:mm:ss");

只有在将DateTime转换为String时才需要格式化{{1}}。

答案 3 :(得分:0)

你试过InvariantCulture吗?要以特定格式打印字符串,请查看format strings

答案 4 :(得分:0)

嘿伙计们。我只想公开解决导致我问题的原因。

当我呈现报告并将其加载到报告查看器中时,CurrentCulture已更改为en-EN。报告语言设置为空白,这使我相信默认语言是en-EN。

这改变了我的时间表现方式。 DateTime变量不记得其格式化文化。因此,将DateTime表示为字符串的任何更改都必须包含字符串格式,如下所示:dateTimeVariable.toString("yyyy-MM-dd hh:mm:ss")

我希望有人会发现这有用。