我正在从数据库中以string
的形式检索日期,然后需要将其转换。这样可以以不同格式打印。
我正在使用
string date = dr[2].ToString();
date = DateTime
.ParseExact(date,"yyyy-MM-dd hh:mm:ss.fff tt ",new CultureInfo.InvariantCulture("enUS"));
但这不起作用:
System.FormatException:'字符串未被识别为有效字符串 日期时间。”
答案 0 :(得分:4)
如果您使用setDeferredGroups
,则可以在string
之后加上ParseExact
:
ToString
但是,您似乎正在使用 string date = "2018-05-18 17:16:24.570";
// 5/18/2018 05:16 PM
date = DateTime
.ParseExact(date, "yyyy-M-d H:m:s.fff", CultureInfo.InvariantCulture)
.ToString("M/dd/yyyy hh:mm ttt", CultureInfo.GetCultureInfo("en-US"));
(DataReader
片段);如果是您的情况,则dr[2]
比Convert
更好(假设RDBMS具有相应的ParseExact
字段):
Date
编辑:如果要将时间从UTC更改为TimeZone,可以尝试 string date = Convert
.ToDateTime(dr[2])
.ToString("M/dd/yyyy hh:mm ttt", CultureInfo.GetCultureInfo("en-US"));
(请参阅所有可用的时区here),例如
TimeZoneInfo