我想将日期“ 2018-05-18 17:16:24.570”转换为C#

时间:2018-07-26 14:50:56

标签: c# datetime

我正在从数据库中以string的形式检索日期,然后需要将其转换。这样可以以不同格式打印。 我正在使用

string date = dr[2].ToString();

date = DateTime
  .ParseExact(date,"yyyy-MM-dd hh:mm:ss.fff tt ",new CultureInfo.InvariantCulture("enUS"));

但这不起作用:

  

System.FormatException:'字符串未被识别为有效字符串   日期时间。”

1 个答案:

答案 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
相关问题