简体   繁体   中英

How to customize datetime format or to convert DateTime to String with required format

I have a DateTime string in 24 HOURS format .. "2009-12-31T23:59:59"
I want it in this format .. "12/31/2009 23:59:59" that is: "MM/DD/YYYY HH:MM:SS"

When I tried to covert it to string I am getting "12/31/2009 11:59:59 PM" .. though I can write a code for .. it doesn't seem to be the efficient one .. Moreover the case become worst when I have dateTime value like "2009-1-1T1:19:15" .. here, as the , I can't even trace the value of Hours and months using substring() and convert.ToInt() .. 的代码..它似乎不是有效的..而且当我有dateTime值,例如“ 2009-1-1T1:19:15”时,情况变得最糟。在这里,由于 ,我什至无法使用substring()来跟踪Hours和months的值并进行转换.ToInt()..

I am using visual studio 2005, It is throwing error saying "Cannot implicitly convert DateTime to String" when I write this statement: ..

result = Convert.ToString(dateValue);

I simplify my question: Is there any method to convert "yyyy-mm-ddThh:mm:ss" format to "mm/dd/yyyy hh:mm:ss" .. And it must work in visual studio 2005 ..

You need to use ParseExact to get it back to datetime:

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");
}

That should give you the desired output you are looking for. By using InvariantInfo, it will make sure you system settings don't replace the slashes with whatever you have currently defined in the system. I think I saw in the comments that you had a "." being used as your date separator.

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");
}

It's something like this: XmlConvert.ToDateTime(yourDate, "yyyy-MM-dd\\Thh:mm:ss").ToString("MM/dd/yyyy HH:MM:SS")

Check here for more info:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM