日期:2014-05-18  浏览次数:20870 次

请问如何将字符串Aug 1 2007 12:05:12:000AM转换成DateTime格式?
最近在项目中遇到Aug 1 2007 12:05:12:000AM这种时间格式,要求转换成DATETIME格式,导入ACCESS数据库。请问用C#应该如何转换?

------解决方案--------------------
本身“上午12点,下午12点”本身就有不好理解 //一般口语是:午夜12点,中午12点,但老外不这样说(他们说midnights 午夜)
就象我们说星期一、星期二一样,他们没有1、2的说法
这是文化差异
计算机语言是老外设计的,你就得按老外的思维理解
测试数据控制在00:00:00-11:59:59之间
C# code
"MMM d yyyy hh:mm:ss:ffftt"
"Aug 31 2007 12:05:12:000PM" //2007-8-31 12:05:12
"Aug 31 2007 12:05:12:000AM" //2007-8-31 0:05:12

------解决方案--------------------
谁告诉你的
Aug 31 2007 12:05:12:000PM 转换后应该是 2007-09-01 00:05:12
你又从哪里看到
Aug 31 2007 12:05:12:000PM 和 Aug 31 2007 12:05:12:000AM转换出来都是一样的了

Aug 31 2007 12:05:12:000AM 转换为24小时制应该是 Aug 31 2007 00:05:12:000
Aug 31 2007 12:05:12:000PM 转换为24小时制应该是 Aug 31 2007 12:05:12:000

先做过测试再说
C# code
DateTime dt1 = DateTime.ParseExact("Aug 31 2007 12:05:12:000AM", "MMM d yyyy hh:mm:ss:ffftt", CultureInfo.GetCultureInfo("en-US"));
DateTime dt2 = DateTime.ParseExact("Aug 31 2007 12:05:12:000PM", "MMM d yyyy hh:mm:ss:ffftt", CultureInfo.GetCultureInfo("en-US"));
MessageBox.Show(dt1.ToString("yyyy-MM-dd HH:mm:ss:fff") + "\n" + dt2.ToString("yyyy-MM-dd HH:mm:ss:fff"));