如何忽略秒ToShortTimeString

时间:2011-06-10 07:29:45

标签: c#

我的约会时间向我显示了这个秒,尽管我已经把它作为这个 TimeSlotFrom = Value.ToShortTimeString();

我只能通过笔记本电脑查看HH:mm。但是,从客户端的电脑上读取时,它会显示为HH:mm:ss

它与我客户端电脑中使用的时间格式有关吗?我如何处理这个只是显示HH:mm?

6 个答案:

答案 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”