如何将时间跨度转换为pm或am time?

And*_*ure 7 c# asp.net

我将用户时间存储在UTC时间,当我显示它时,我需要将其转换为上午时间.

这是数据库中的示例我将17:00:00转换为下午5:00

这是我到目前为止所提出的代码,但它不起作用

var time = DateTime.ParseExact(object.Time.ToString(), "HHmm", CultureInfo.CurrentCulture).ToString("hh:mm tt");
Run Code Online (Sandbox Code Playgroud)

ysr*_*srb 11

var time = DateTime.ParseExact("17:00", "HH:mm", null).ToString("hh:mm tt");
Run Code Online (Sandbox Code Playgroud)

返回05:00 PM

DateTime.ParseExact返回DateTime

编辑:

包括CultureInfo

var time = DateTime.ParseExact("17:00", "HH:mm", null).ToString("hh:mm tt", CultureInfo.GetCultureInfo("en-US"));
Run Code Online (Sandbox Code Playgroud)


Mar*_*ell 7

TimeSpan的持续时间为"17小时",而不是时间.也许将其添加到日期(仅限)并使用现有的日期时间格式选项?(虽然注意夏令时)

string s = DateTime.Today.Add(duration).ToString(specifier);
Run Code Online (Sandbox Code Playgroud)