C# 如何忽略秒ToSortTimeString

C# 如何忽略秒ToSortTimeString,c#,C#,我的datetime向我显示了秒数,尽管我已经这样做了 TimeSlotFrom=Value.ToShortTimeString() 我只能从笔记本电脑上查看它HH:mm。但是,当从客户端的pc读取时,它显示为HH:mm:ss 它是否与我客户电脑中使用的时间格式有关?如何处理此问题以仅显示HH:mm?是关于字符串格式的一个很好的参考。试试看 TimeSlotFrom = Value.ToString("h:mm tt"); 短时间模式:“h:mm tt” 短时间字符串:“3:02 AM” 如果

我的datetime向我显示了秒数,尽管我已经这样做了
TimeSlotFrom=Value.ToShortTimeString()

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

它是否与我客户电脑中使用的时间格式有关?如何处理此问题以仅显示HH:mm?

是关于字符串格式的一个很好的参考。

试试看

TimeSlotFrom = Value.ToString("h:mm tt");
短时间模式:“h:mm tt”
短时间字符串:“3:02 AM”

如果您不希望AM/PM使用
Value.ToString(“HH:mm”)
以始终获得相同的格式,只需给出“h:mm”,因为ToSortTimeString使用在PC区域性上定义的格式。

来自MSDN:
DateTime.ToShortTimeString
方法

当前日期时间的值 对象使用模式进行格式化 由 DateTimeFormatInfo.ShortTimePattern 与当前数据库关联的属性 线程文化

建议您的应用程序 将短时模式设置为 利息的确切价值,而不是 正在尝试使用时间分隔符 替换。例如,获取 模式h-mm-ss及其应用 应特别设置“h-mm-ss”

或者最简单的方法是用这个来代替

TimeSlotFrom = Value.ToString("HH:mm tt")

由于从
ToSortTimeString()
返回的字符串对区域性敏感,因此很可能会出现计算机之间的差异。它反映了当前区域性的DateTimeFormatInfo对象定义的时间模式

如果你想强制一个特定的格式,我建议你更明确一些。例如:

var TimeSlotFrom = DateTime.Now.ToString("hh:mm");

希望这有帮助

客户机中可能更改了ToSortTimeString()使用的标准格式。检查当前格式的设置:

Console.WriteLine("Standard short time output: " + DateTime.Now.ToShortTimeString());
Console.WriteLine("Standard short time format: " + System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortTimePattern);
您可以将ShortTimePattern的值更改为所需的值(但要小心,因为这会影响当前线程上的所有ToSortTimeString()输出):


如果这不是一个选项,则通过指定上述其他答案中所示的格式(date.ToString(“h:mm tt))来设置时间格式.

在此处阅读:简短回答..您的笔记本电脑的区域设置是什么?例如,对于反区域设置,它是
HH:mm
ToSortTimeString没有参数。这是一个误导性的答案。HH是24小时格式,tt是AM\PM您可能希望将解决方案更改为“HH:mm”或“h:mm tt”“这是一个误导性的回答。hh是12小时格式小时,缺少AM\PM的tt。您可能希望将解决方案更改为“hh:mm”或“h:mm tt”
Console.WriteLine("Standard short time output: " + DateTime.Now.ToShortTimeString());
Console.WriteLine("Standard short time format: " + System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortTimePattern);
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());