我的约会时间向我显示了这个秒,尽管我已经把它作为这个
TimeSlotFrom = Value.ToShortTimeString();
我只能通过笔记本电脑查看HH:mm
。但是,从客户端的电脑上读取时,它会显示为HH:mm:ss
。
它与我客户端电脑中使用的时间格式有关吗?我如何处理这个只是显示HH:mm?
答案 0 :(得分:12)
使用Value.ToString("HH:mm")
始终获得相同的格式,因为ToShortTimeString使用PC文化中定义的格式。
答案 1 :(得分:4)
来自MSDN:
DateTime.ToShortTimeString
方法
当前DateTime的值 使用模式格式化对象 由...定义 DateTimeFormatInfo.ShortTimePattern 与当前相关的财产 线程文化。
DateTimeFormatInfo.ShortTimePattern
建议您使用您的应用程序 将短时间模式设置为 准确的利息值,而不是 试图拥有时间分隔符 更换。例如,获得 模式h-mm-ss,应用程序 应该专门设置“h-mm-ss”。
或者最简单的是使用它
TimeSlotFrom = Value.ToString("HH:mm tt")
答案 2 :(得分:1)
可能在客户端计算机中更改了ToShortTimeString()使用的标准格式。检查当前格式设置为:
Console.WriteLine("Standard short time output: " + DateTime.Now.ToShortTimeString());
Console.WriteLine("Standard short time format: " + System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortTimePattern);
您可以将ShortTimePattern的值更改为您需要的值(但要小心,因为这会影响当前线程上的所有ToShortTimeString()输出):
System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortTimePattern = "h:mm:ss tt";
Console.WriteLine("Modified short time format: " + System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortTimePattern);
Console.WriteLine("Modified short time output: " + DateTime.Now.ToShortTimeString());
如果这不是一个选项,请通过指定上面其他答案中显示的格式来格式化时间(date.ToString(“h:mm tt))。
答案 3 :(得分:0)
http://blog.stevex.net/string-formatting-in-csharp/是字符串格式的一个很好的参考。
答案 4 :(得分:0)
机器之间的差异很可能发生,因为从ToShortTimeString()
返回的字符串对文化很敏感。它反映了当前文化的DateTimeFormatInfo对象定义的时间模式。
如果您想强制使用特定格式,我建议您更明确一些。例如:
var TimeSlotFrom = DateTime.Now.ToString("hh:mm");
希望这有帮助!
答案 5 :(得分:-2)
尝试
TimeSlotFrom = Value.ToString("h:mm tt");
短时间模式:“h:mm tt”
短时间串:“3:02 AM”
如果您不想要AM / PM
,请给出“h:mm”