gpt4 book ai didi

c# - 我想在 C# 中将日期 "2018-05-18 17:16:24.570"转换为 "7/26/2018, 10:42 AM"格式

转载 作者:太空宇宙 更新时间:2023-11-03 20:54:52 25 4
gpt4 key购买 nike

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

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

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

但这不起作用:

System.FormatException: 'String was not recognized as a valid DateTime.'

最佳答案

如果您使用 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 是比 ParseExact 更好的选择(前提是 RDBMS 具有相应的 Date 字段):

  string date = Convert
.ToDateTime(dr[2])
.ToString("M/dd/yyyy hh:mm ttt", CultureInfo.GetCultureInfo("en-US"));

编辑:如果您想将时间从 UTC 更改为时区,您可以尝试 TimeZoneInfo(查看所有可用时区 here),例如

  //TODO: Put the right Time Zone Id here 
// Or should it be "Arabian Standard Time"? I've tried to guess
TimeZoneInfo zone = TimeZoneInfo.FindSystemTimeZoneById("Atlantic Standard Time");

string date = TimeZoneInfo
.ConvertTimeFromUtc(Convert
.ToDateTime(dr[2]), zone)
.ToString("M/dd/yyyy hh:mm ttt", CultureInfo.GetCultureInfo("en-US"));

关于c# - 我想在 C# 中将日期 "2018-05-18 17:16:24.570"转换为 "7/26/2018, 10:42 AM"格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51541790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com