我需要将长日期时间转换为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;
}
}
答案 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 :(得分:1)