我根据需要格式化了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
如何更新语法以仅显示此内容?
答案 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
是空的。