C# Parse-更改格式

C# Parse-更改格式,c#,datetime,datetime-format,C#,Datetime,Datetime Format,我将尝试举例说明: var dateNow = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"); 生产:10/01/2014 21:50:34 var dateNowParse = DateTime.Parse(DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss")); 制作:2014年1月10日晚上9:50:34 问题: 如何解析日期,并保持格式,如:dd/MM/yyyy H

我将尝试举例说明:

var dateNow = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
生产:10/01/2014 21:50:34

var dateNowParse = DateTime.Parse(DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
制作:2014年1月10日晚上9:50:34

问题:

如何解析日期,并保持格式,如:dd/MM/yyyy HH:MM:ss,使用24小时格式,无任何PM

谢谢大家!

更新1 对不起,也许我的问题不太清楚,我会在下面解释真实情况

请不要关注
DateTime的真正含义。现在
,假设我们有一个
字符串
变量,格式为
10/01/2014 21:50:34
,然后我尝试解析它,并将结果存储在另一个变量中。我想要实现的是将结果保存在一个DateTime变量中,该变量具有精确的格式
10/01/2014 21:50:34

下面是一个片段:

var stringDate = "10/01/2014 22:50:30";
DateTime parsedDate = DateTime.Parse(stringDate, CultureInfo.InvariantCulture);
//parsedDate result is: 10/01/2014 10:50:30 PM
让我沮丧的是:

  • stringDate
    中,
    22:50
    hour表示字符串格式为
    24
    hour时钟。(12时钟格式使用最多12小时的小时计数器)

  • 如果我使用22:50,那么从逻辑上讲,输出不应该使用任何AM PM和12小时格式吗

  • 如何解析日期并保持格式

    String strNow = dateNow.ToString("dd/MM/yyyy HH:mm:ss");
    
    如果需要,您需要将格式与
    DateTime
    一起保存。
    DateTime
    没有任何特定格式的概念。
    Parse
    返回的
    DateTime
    的值不是“10/01/2014 9:50:34 PM”-它是特定的日期和时间,而不是字符串表示形式

    您可以有一个同时维护这两种格式的类型,或者如果您总是希望以相同的方式格式化,那么在格式化时只需显式指定该格式,而不必使用
    DateTime
    值将其保留为数据


    就我个人而言,在可行的情况下,我会尽量坚持使用
    DateTime.ParseExact
    ,因为我发现预测它会做什么比较容易——但这取决于您的输入。如果输入的是您所期望的特定格式,
    ParseExact
    确实是前进的方向,可能是使用不变的区域性来避免任何文化差异。

    我现在将日期存储为日期

    DateTime dateNow = DateTime.Now;
    
    然后,当您需要使用该格式显示它时

    String strNow = dateNow.ToString("dd/MM/yyyy HH:mm:ss");
    
    如果您有一个带有格式的日期,比如字符串变量strNow,并且希望将其放入DateTime,我会确保捕获格式异常

    DateTime dateNow;
    
    try {
    dateNow = DateTime.ParseExact(strNow, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
    }
    catch (FormatException) {
    //Log something or set a default date.
    }
    

    不要在问题标题中重复标记。谢谢。如果您需要使用第一个示例保持格式,请以字符串形式存储。显示效果很好,但当我需要解析这种格式的日期时,它会破坏它,并进行一些内置转换(例如更改24小时格式)