使用 System.Globalization.CultureInfo.InvariantCulture 将字符串转换为日期时间
Posted
技术标签:
【中文标题】使用 System.Globalization.CultureInfo.InvariantCulture 将字符串转换为日期时间【英文标题】:string to datetime conversion using System.Globalization.CultureInfo.InvariantCulture 【发布时间】:2014-06-13 11:53:02 【问题描述】:我有以下代码将字符串转换为日期时间..
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 类型中只因为在数据库(mysql)中该字段是 DateTime 格式. 所以,我想要 2014-04-25 04:02:32 格式的输出,但它是字符串,我需要将其转换为日期时间。
注意:*** 中有很多与此问题相关的问题,但我的声誉不足以评论它们,所以我不得不创建这个新问题..
【问题讨论】:
【参考方案1】:您的日期时间以这种方式显示,因为在您的Region Settings
中,Control Panel
日期和时间格式是这样设置的。
请转到 控制面板 并选择 区域 并在“格式”选项卡中选择正确的值,否则请转到 其他设置 自定义您的日期和时间格式。
【讨论】:
【参考方案2】:这个问题的答案隐藏在你的代码中
就在这段代码之后
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");
我希望这会有所帮助
【讨论】:
以上是关于使用 System.Globalization.CultureInfo.InvariantCulture 将字符串转换为日期时间的主要内容,如果未能解决你的问题,请参考以下文章
在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?
Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)