使用System.Globalization.CultureInfo.InvariantCulture进行字符串到日期时间的转换

时间:2014-04-28 04:32:51

标签: c# mysql datetime

我有以下代码将字符串转换为datetime ..

string updateDateTime = "1398398552695";

double temp = Double.Parse(updateDateTime);
TimeSpan sp = TimeSpan.FromMilliseconds(temp);
DateTime dt = new DateTime(1970, 1, 1).Add(sp);
updateDateTime = dt.ToString("yyyy-MM-dd HH':'mm':'ss");//final date time

string tt = dt.ToString("yyyy-MM-dd HH':'mm':'ss");
DateTime output1;
DateTime.TryParseExact(tt, "yyyy-MM-dd HH':'mm':'ss", System.Globalization.CultureInfo.InvariantCulture,System.Globalization.DateTimeStyles.None,out output1);

DateTime output2 = DateTime.ParseExact(tt, "yyyy-MM-dd HH':'mm':'ss", System.Globalization.CultureInfo.InvariantCulture);

Console.WriteLine(dt);
Console.WriteLine(tt);
Console.WriteLine(output1);
Console.WriteLine(output2);

如果我们看到输出它会是这样的......

25/04/2014 04:02:32//dt
2014-04-25 04:02:32//tt
25/04/2014 04:02:32//output1
25/04/2014 04:02:32//output2

问题是如果我们看到output1和output2它实际上没有给出yyyy-MM-dd格式的结果并且我需要这种格式的值并且在datetime类型中只有coz in数据库(MySQL)该字段是DateTime格式。 所以,我希望在2014-04-25 04:02:32格式输出,但它是字符串,我需要将其转换为日期时间。

注意:stackoverflow中存在许多与此问题相关的问题,但我的声誉不足以对它们发表评论,所以我不得不创建这个新问题。

2 个答案:

答案 0 :(得分:2)

您的日期时间会以这种方式显示,因为Region Settings Control Panel日期和时间格式是以这种方式设置的。

请转到控制面板并选择区域,然后在“格式”标签中选择正确的值,或者转到其他设置以自定义日期和时间格式。

答案 1 :(得分:0)

您的代码中隐藏了对此问题的回答

在此代码之后

DateTime.TryParseExact(tt, "yyyy-MM-dd HH':'mm':'ss",System.Globalization.CultureInfo.InvariantCulture,System.Globalization.DateTimeStyles.None,out output1);

添加

string od1 = output1.ToString("yyyy-MM-dd HH':'mm':'ss");

我希望这会有所帮助