Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#日期时间对象,24小时格式,无Am PM_C#_Asp.net_.net_Datetime - Fatal编程技术网

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中解析youre
dateString
时没有成功),则可以使用

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);