长日期时间转换为日期时间C#

时间:2013-12-16 09:10:00

标签: c# datetime

我需要将长日期时间转换为c#中的简单日期时间。我尝试了很多解决方案,但没有一个工作..长日期时间的格式就像这样“2011年1月21日星期日12:03:00 “我需要把它转换成这个”1/21/2011 12:03:00“。这是我的代码。

string chk = null;
                    string[] splt = l.Message.Split('#');
                    for (int i = 0; i < splt.Length; i++)
                    {
                        string[] parts = splt[i].Split(':');
                        char prefix = Convert.ToChar(parts[0]);
                        string value = parts[1];

                        switch (prefix)
                        {
                            case 'T':
                                l.truck = value;
                                break;
                            case 'D':
                                l.driver = value;
                                break;
                            case 'R':
                                l.receivedby = value;
                                break;
                            case 'A':
                                l.arriveddate = DateTime.FromOADate(Convert.ToDouble(value)).ToLongDateString();
                                var arrvd = DateTime.Parse(l.arriveddate, new CultureInfo("en-GB"));
                                l.arriveddate = arrvd.ToString();
                                break;
                            case 'U':
                                l.unloaddate = DateTime.FromOADate(Convert.ToDouble(value)).ToLongDateString();
                                var unlod = DateTime.Parse(l.unloaddate, new CultureInfo("en-GB"));
                                l.unloaddate = unlod.ToString();
                                break;
                            case 'N':
                                l.deliverynote = value;
                                break;
                            case 'L':
                                l.deliverdate = DateTime.FromOADate(Convert.ToDouble(value)).ToLongDateString();
                                var dlvrd = DateTime.Parse(l.deliverdate, new CultureInfo("en-GB"));
                                l.deliverynote = dlvrd.ToString();
                                break;
                            case 'S':
                                l.deliverystatus = value;
                                break;
                            case 'M':
                                l.mac = value;
                                break;
                            case 'C':
                                l.msgcreatedate = DateTime.FromOADate(Convert.ToDouble(value)).ToLongDateString();
                                var msgcrtd = DateTime.Parse(l.msgcreatedate, new CultureInfo("en-GB"));
                                l.msgcreatedate = msgcrtd.ToString();
                                break;
                        }
                    }

2 个答案:

答案 0 :(得分:3)

您应该真正开始使用内置的DateTime类型:

string input = "Friday, January 21, 2011 12:03:00";

// read input of a given format
DateTime dt = DateTime.ParseExact(input, "dddd, MMMM dd, yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);

// create a string representing the DateTime in another format
string output = dt.ToString("M/dd/yyyy hh:mm:ss", System.Globalization.CultureInfo.InvariantCulture);

// output is now "1/21/2011 12:03:00", regardless the culture

根据您使用的文化,您可能只需使用string output = dt.ToString();,例如使用en-GB时。

顺便说一句:1月21日是2011年的星期五。

答案 1 :(得分:1)

使用此代码,它应该可以正常工作

string date = myDate.ToString("M/dd/yyyy hh:mm:ss");

Here是所有日期时间格式