日期时间格式字符串模式

本文关键字:模式 字符串 格式 时间 日期 | 更新日期: 2023-09-27 18:03:40

谁能告诉我正确的格式字符串,以显示以下格式的时间?

   Original: #7/28/2011 09:00:03 AM#
   Required Format: 9am
   //BUT if the minutes part contains a value I want it to look like this
   Original: #7/28/2011 09:21:03 AM#
   Required Format: 9:21am

是否有一个格式字符串我可以使用来完成这一点?

PS:我已经尝试过h:mmtt,但正如预期的那样,并没有完全给我我想要的

日期时间格式字符串模式

格式字符串没有帮助。您希望根据值有条件地格式化字符串。您必须自己检查分钟值,并根据是否有0分钟应用适当的格式字符串。

DateTime dateValue = DateTime.Parse("7/28/2011 09:00:03 AM");
string formattedString;
if (dateValue.Minute == 0)
    formattedString = dateValue.ToString(@"M/d/yyyy Htt");
else
    formattedString = dateValue.ToString(@"M/d/yyyy H:mmtt");

您需要编写逻辑来跳出00条件,当您发现00为分钟时,只返回小时值,否则返回小时和分钟值,如

dtobj.Minute.Equals(00) ? dtobj.ToString("dd/MM/yy hhtt") : dtobj.ToString("dd/MM/yy hh:mmtt")

try~

string str = "7/28/2011 09:21:03 AM";
DateTime dt = DateTime.ParseExact(str, "M/dd/yyyy HH:mm:ss tt",CultureInfo.InvariantCulture);
Console.WriteLine(dt.Minute == 0 ? dt.ToString("HHtt"):dt.ToString("HH:mmtt"));