如何自定义日期时间格式或将DateTime转换为具有所需格式的String

我有24小时格式的DateTime字符串..“2009-12-31T23:59:59”
我想要这种格式..“12/31/2009 23:59:59”即:“MM / DD / YYYY HH:MM:SS”

当我试图将它转换为字符串时,我得到“12/31/2009 11:59:59 PM”..虽然我可以编写一个字符串操作的代码..它似乎不是有效的..而且当我有像“2009-1-1T1:19:15”这样的dateTime值时,情况变得最糟..这里,由于字符串长度不同 ,我甚至无法使用substring()跟踪小时和月的值并转换.ToInt()..

我正在使用visual studio 2005,当我写这个语句时,它抛出错误说“不能隐式地将DateTime转换为String”:

result = Convert.ToString(dateValue); 

我简化了我的问题:是否有任何方法可以将“yyyy-mm-ddThh:mm:ss”格式转换为“mm / dd / yyyy hh:mm:ss”..它必须在visual studio 2005中工作..

您需要使用ParseExact将其恢复到日期时间:

 string FormatDateTime(string dateString) { DateTime dt = DateTime.ParseExact(dateString, "yyyy-MM-ddTHH:mm:ss", DateTimeFormatInfo.InvariantInfo, DateTimeStyles.None); return dt.ToString("MM/dd/yyyy HH:mm:ss"); } 

这应该可以为您提供所需的输出。 通过使用InvariantInfo,它将确保您的系统设置不会用您当前在系统中定义的任何内容替换斜杠。 我想我在评论中看到你有一个“。” 被用作日期分隔符。

http://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo.dateseparator.aspx http://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo.invariantinfo.aspx

就像是:

 string s = DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss"); 
 string FormatDateString(string date_string) { DateTime date; if (!DateTime.TryParse(date_string, out date) { return null; } return date.ToString("MM/dd/yyyy HH:mm:ss"); } 

它是这样的: XmlConvert.ToDateTime(yourDate, "yyyy-MM-dd\Thh:mm:ss").ToString("MM/dd/yyyy HH:MM:SS")

点击此处了解更多信息:

http://msdn.microsoft.com/en-us/library/kzk5c6y9.aspx