C#日期时间对象,24小时格式,无Am PM
我正在尝试将C#日期时间对象,24小时格式,无Am PM,c#,asp.net,.net,datetime,C#,Asp.net,.net,Datetime,我正在尝试将DateTime格式设置为24小时。最初我有一个12小时表示的字符串。我找到的所有解决方案都是将DateTime转换为字符串 string dateString = "Mon 16 Jun 8:30 AM 2008"; // <-- Valid string format = "dd/MM/yyyy HH:mm"; DateTime dateTime; if (DateTime.TryParseExact(dateString,
DateTime
格式设置为24小时。最初我有一个12小时表示的字符串。我找到的所有解决方案都是将DateTime
转换为字符串
string dateString = "Mon 16 Jun 8:30 AM 2008"; // <-- Valid
string format = "dd/MM/yyyy HH:mm";
DateTime dateTime;
if (DateTime.TryParseExact(dateString, format, CultureInfo.InvariantCulture,
DateTimeStyles.RoundtripKind, out dateTime))
{
DateTime dateIn24 = dateTime;// dateIn24 should be in 24 hour format
}
我得到了答案
Thread.CurrentThread.CurrentCulture=新的CultureInfo(“en GB”);
如果是en US 12小时格式
默认情况下,它将根据系统日期-时间设置设置为en-US。根据MSDN文档,日期-时间实例仅包含信息,小时属性是0到23之间的整数: 属性值 类型:System.Int32 小时分量,表示为0到23之间的值
如果您正在谈论格式化,那么您需要将其转换为字符串,如注释中所述。据我所知,24小时格式既不是如何解析或保存日期时间的问题,也不是格式的问题。如果输入
if
-块(我在LinqPad中解析youredateString
时没有成功),则可以使用
var dateStringWith24Hours = dateTime.ToString(dateString);
因为格式化字符串中的
HH
表示您希望将小时格式化为24小时。看一下,我已经完成了。他们正在将日期转换为字符串。我需要输出为日期时间对象。除非您将其打印为字符串,否则DateTime没有格式。否则,它有其内部表示形式,这对于所有人来说都是相同的“格式”instances@Lijo如果你找到了解决方案,你应该自己回答你的问题,并将你的答案标记为解决方案:/但你找到的解决方案仍然具有误导性。没有12小时或24小时的内部代表。默认的ToString
实现使用当前区域性来格式化DateTime
。因此,当CurrentCulture
为en US时,您将获得12小时的表示时间。这或多或少是我在回答中写的,这就是我所说的。在内部,DateTime
将始终具有24小时表示。12小时格式仅在将DateTime
转换为字符串时相关。也许您可以详细说明为什么以及如何需要12小时格式,然后我们可以提出一个解决方案。默认情况下,日期时间为12小时格式。我需要24小时格式来重复我自己的话:DateTime
结构对12小时表示法一无所知。只有相应的格式化方法可以。创建简单的windows窗体应用程序检查datetime.nowformt@EmersonCardoso谢谢你的努力,但我不认为他会相信我们。。。
var dateStringWith24Hours = dateTime.ToString(dateString);