首页 > 代码库 > DateTime和字符串转换问题
DateTime和字符串转换问题
DateTime和string之间的相互转换经常碰到,可就这么简单的一个转换其中也有些需要注意的地方.
1 static void Main(string[] args) 2 { 3 string format = @"yyyy/MM/dd HH:mm:ss"; 4 DateTimeFormatInfo dtfi = DateTimeFormatInfo.InvariantInfo; 5 6 DateTime dateTime = new DateTime(2014, 11, 2, 17, 30, 00); 7 8 string dateTimeStr1 = dateTime.ToString(format); 9 string dateTimeStr2 = dateTime.ToString(format, dtfi);10 11 Console.WriteLine(Thread.CurrentThread.CurrentCulture.DisplayName);12 Console.WriteLine(dateTimeStr1);13 Console.WriteLine(dateTimeStr2);14 15 DateTime dateTimeResult;16 Console.WriteLine(DateTime.TryParseExact(dateTimeStr1, format, null, DateTimeStyles.None, out dateTimeResult));17 Console.WriteLine(DateTime.TryParseExact(dateTimeStr2, format, dtfi, DateTimeStyles.None, out dateTimeResult));18 19 Console.ReadLine();20 }
dateTime.ToString(format)如果不传第二个参数,那么将会使用当前线程的区域设置,使格式化的结果依赖于本机的区域设置.
DateTime.TryParseExact(dateTimeStr1, format, null, DateTimeStyles.None, out dateTimeResult),第三个参数如果为null,也会使用当前线程的区域设置.
由于不能保证所有机器的区域设置都一样,上面两句代码可能会得不到预期的结果.
可以使用特定的区域设置来解决这个问题,或者直接将转换设置为和区域设置无关,完全由代码控制.
DateTimeFormatInfo dtfi = DateTimeFormatInfo.InvariantInfo;
string dateTimeStr2 = dateTime.ToString(format, dtfi);
DateTime.TryParseExact(dateTimeStr2, format, dtfi, DateTimeStyles.None, out dateTimeResult);
DateTime和字符串转换问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。