簡體   English   中英

將字符串轉換為特定的DateTime格式

[英]Convert string to specific DateTime format

我一直在谷歌搜索一段時間,因為我的生活似乎無法找到解決方案。 我認為這很容易,但是花了太長時間才轉向stackoverflow。

我需要將包含日期和時間的字符串轉換為DateTime變量。 我已經將字符串格式化為我想要存儲的確切格式但是當我將其轉換為DateTime時,它會不斷添加我不想要的秒數。 我希望它存儲為01/01/2010 09:00 AM。 這是我到目前為止使用的代碼:

DateTime.ParseExact(startTime,"MM/dd/yyyy hh:mmtt", null);

..但它會不斷追加秒。 請指教。

如果它存儲為DateTime數據類型,則存儲正確,但您的UI 顯示錯誤。 無論您如何設置值,DateTime數據類型始終具有秒(毫秒等)。 問題在於如何將其顯示回用戶。

您需要在顯示時以正確的字符串格式顯示所需的日期,如下所示

Label1.Text = startTime.ToString("MM/dd/yyyy hh:mmtt");

編輯 - 添加

要在GridView中對其進行格式化,請參見此處: http//peterkellner.net/2006/05/24/how-to-set-a-date-format-in-gridview-using-aspnet-20using-htmlencode-property/

我認為,當你說它增加幾秒鍾時,你的意思是當你試圖讀出來它也在讀秒時,你想要做類似的事情

DateTime parsedDateTime = DateTime.ParseExact(startTime, "MM/DD/YYYY hh:mmtt", null);
string dateTime = parseDateTime.ToString("MM/DD/YYY hh:mmtt");

DateTime類總是有幾秒,毫秒和我認為存儲在納秒中的納秒。 總是,無論你是否填寫它,它都假設,盡管你只需要格式化你如何從DateTime對象讀取信息,使它不會給你你沒有填寫或沒有使用的DateTime數據片段。

如果您將其存儲在數據庫中,請了解數據庫還將存儲所有這些信息,無論您是否將其提供給它。 有一些不同的SQL DateTime類型,如SmallDate等,它們存儲不同數量的DateTime數據,不知道是否有一個存儲到小時而不是秒,但是使用SQL,您還可以格式化您選擇數據的方式out,或者只是將它作為C#DateTime對象選擇到C#中,然后再次表示時,格式化ToString(),使其不顯示您不想要/不具有的數據。

嘗試這個。

    DateTime dt;
    if (DateTime.TryParse(startTime, out dt))
    {
        string newDateTime = dt.ToString("MM/dd/yyyy hh:mmtt");
    }

這是一個例子。

    String strDate="12/20/2013";
    string strFormat="dd/MM/yyyy";
    DateTime objDT;

    if (DateTime.TryParseExact(strDate, strFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out objDT) == true)
    {
        Response.Write("<b>Formatted DateTime : </b>" + objDT.ToString());
    }
    else
    {
        Response.Write("<b>Not able to parse datetime.</b>");
    }

如果您有字符串,則必須首先保證它確實可以轉換為日期時間。
首先,這樣做。 一旦你有了一個日期時間,就把它存儲在數據庫中,你不需要對格式進行協調,(正如其他人在這里所說)。

然后,如果你需要,只有當你需要在某處顯示它時,才將其重新格式化為不同的表示形式。

string s = "21 June 2010 09:23:56";
DateTime dt;
if (DateTime.TryParse(s, out dt))
   // dit is a valid datetime, storeit or whatever
else
   throw ApplicationException(
        "{0} is not a valid datetime.", s);
//  --  and now you can redisplay dt any way you want -----
debug.Print(s.ToString("d MMM yyyy");
debug.Print(s.ToString("HH:mm:ss");
debug.Print(s.ToString("dddd, d MMM yy");
debug.Print(s.ToString("MMM d, yyyy");
debug.Print(s.ToString("HH:mm:ss dddd");

//等...

暫無
暫無

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

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