簡體   English   中英

如何自定義日期時間格式或將日期時間轉換為具有所需格式的字符串

[英]How to customize datetime format or to convert DateTime to String with required format

我有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” ..雖然我可以編寫用於字符串操作的代碼..它似乎不是有效的..而且當我有dateTime值,例如“ 2009-1-1T1:19:15”時,情況變得最糟。在這里,由於字符串長度在變化 ,我什至無法使用substring()來跟蹤Hours和months的值並進行轉換.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/zh-CN/library/kzk5c6y9.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM