我正在尝试以12小时格式输出日期时间。它适用于一些然后休息。
代码:
while (myReader.Read())
{
Console.WriteLine("Date Before formatting = " + myReader["Date"].ToString());
DateTime dt = DateTime.ParseExact(myReader["Date"].ToString(), "yyyy/MM/dd hh:mm:ss", CultureInfo.InvariantCulture);
string format = "MM/dd/yyyy hh:mm:ss tt";
Console.WriteLine(myReader["RxNumber"].ToString() + "\t\t" + dt.ToString(format));
}
输出:
连接已打开
格式化之前的日期= 2013/12/26 11:26:08
12/26/2013 11:26:08 AM
格式化前的日期= 2013/12/26 09:02:01
12345 12/26/2013 09:02:01 AM
格式化之前的日期= 2013/12/26 09:04:29
123456 12/26/2013 09:04:29 AM
格式化前的日期= 2013/10/28 10:19:26
10/28/2013 10:19:26 AM
格式化前的日期= 2014/02/14 12:25:57
7000006 02/14/2014 12:25:57 AM
格式化前的日期= 2014/02/14 13:20:18
System.FormatException:String未被识别为有效的DateTime。 在System.DateTimeParse.ParseExact(String s,String format,DateTimeFormatInfo dtfi,DateTimeStyles style) at System.DateTime.ParseExact(String s,String format,IFormatProvider provider) at test.Program.Main(String [] args)在c:\ Users \ Admin \ Desktop \ software中测试test608 \ test \ test \ Program.cs:第33行 ☺按任意键继续。 。
答案 0 :(得分:2)
您的问题是数据库以24小时格式存储值,您将它们解析为DateTime
12小时格式;请改用:
DateTime dt = DateTime.ParseExact(
myReader["Date"].ToString(),
"yyyy/MM/dd HH:mm:ss",
CultureInfo.InvariantCulture);
正确地从数据库中解析日期后,输出为12小时格式就可以了。
答案 1 :(得分:1)
将HH
用于军事(24小时)时间。 hh
用于标准的12小时时间。