如何将字符串dd-mm-yyyy h:mm tt转换为c#中的Datetime?

时间:2016-05-21 07:29:15

标签: c# datetime

可能会被问到很多次但是我仍然无法得到解决方案我有这样的字符串格式如24-12-2016 12:24 PM如何将其转换为完全相同的格式到目前为止的日期时间日期类型我试过的是:

echo defense not as def

在日期时间到了这个12-24-2016 12:24 PM但我需要像这样24-12-2016 12:24 PM我该怎么办?作为c#的新手,有人可以提前帮助!在其他所有问题中,它只留到字符串,但我需要将其再次转换为datetimeformat并分配给其他datetime数据类型

2 个答案:

答案 0 :(得分:0)

试试这个

String str  = "12-24-2016 12:24 PM";
DateTime dDate  = DateTime.Parse(str, CultureInfo.InvariantCulture);
Srring strDayFirst  = Format(dDate, "dd/MM/yyyy");

答案 1 :(得分:0)

Okey,因为Jon和Theodoros对他们的评论非常正确,如果你允许我,我会试着清除所有事情......

  

可能会被问到很多次,但我仍然无法得到解决方案   我的字符串格式如24-12-2016 12:24 PM ......

老实说,根据它的名称,您的CallStartTime属性看似DateTime类型(,实际上它更适合TimeSpan,但这无关紧要)。但是,如果你确实确定 string,我仍然没有和你在一起,因为你无法解析{{1 {}}格式的字符串,因为它们与完全不匹配

  

如何将其转换为完全相同的格式到datetime   日期类型

等一下...... 24-12-2016 12:24 PM没有任何隐式格式。它只有日期和时间值。它的值存储为64位dateData field作为Ticks(前62位)和DateTimeKind(63和64位)。当您尝试获取 textual (也称为yyyy-MM-dd hh:mm tt)表示时,“格式”概念适用。

  

到目前为止,我正好像这样12-24-2016 12:24 PM但我需要   得到这样的24-12-2016 12:24 PM

抱歉,但我不相信你。由于您的DateTimestring甚至,如果您在调试器中查看,无法随时查看指示符。当您获得datetimes的字符串表示时,这些只能是 部分字符串。

DateTime实例在调试器中看起来像这样;

enter image description here

由于您的问题不是很清楚,因此有两个选项;

  1. 您的datetimesDatetime,并且您希望将其解析为string
  2. 您有一个24-12-2016 12:24 PM,并希望获得DateTime代表Datetime
  3. 如果您首先尝试解决,则只需使用string格式的24-12-2016 12:24 PM

    ParseExact

    如果您尝试解决第二个问题,则只需使用dd-MM-yyyy hh:mm tt方法并使用适当的格式和文化设置。

    string s = "24-12-2016 12:24 PM";
    DateTime dt = DateTime.ParseExact(s, "dd-MM-yyyy hh:mm tt", 
                                      CultureInfo.GetCultureInfo("en-US"));