仅从DateTime显示时间

时间:2017-01-11 23:52:49

标签: c# datetime time

我根据需要格式化了DateTime字段,但我遇到的问题是我无法想办法显示Time元素领域。

这是我使用的语法

DateTime? fmtTimeOfDeparture;
string TimeOfDeparture = null;

IFormatProvider format = System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat;
fmtTimeOfDeparture = DateTime.ParseExact((TimeOfDeparture != null ? TimeOfDeparture : null), "HHmmss", format);

Console.WriteLine(fmtTimeOfDeparture);

将把它写入控制台:

01/11/2017 6:49:00 PM

希望它显示

6:49:00 PM

如何更新语法以仅显示此内容?

4 个答案:

答案 0 :(得分:0)

您需要使用其他格式将datetime转换为字符串

DateTime? fmtTimeOfDeparture;
string TimeOfDeparture = "01/11/2017 6:49:00 PM";

IFormatProvider format = System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat;
fmtTimeOfDeparture = DateTime.ParseExact((TimeOfDeparture ?? DateTme.Now.ToString()), "dd/mm/yyyy hh:mm:ss tt", format);

Console.WriteLine($"{fmtTimeOfDeparture:h:mm:ss tt}");

答案 1 :(得分:0)

如果时间格式不适合你,请尝试使用string.trim删除替代解决方案的日期

答案 2 :(得分:0)

DateTime? fmtTimeOfDeparture = DateTime.Now;
Console.WriteLine(fmtTimeOfDeparture.HasValue ? fmtTimeOfDeparture.Value.ToString("HH:mm:ss tt") : "");

答案 3 :(得分:0)

如果要以IFormatProvider格式编写,为什么需要6:49:00 PM

所有你需要的是:

DateTime? fmtTimeOfDeparture;

if( fmtTimeOfDeparture.HasValue ) {
   Console.WriteLine( fmtTimeOfDeparture.Value.ToString( "h:mm:ss tt" ) );
}

显然它不会写任何东西,因为fmtTimeOfDeparture是空的。