2014-05-14 280 views
0

我從下拉列表中獲取日期。進入weekstartDate的日期格式是12/05/2014 12:00:00 AM。我想這是因爲2014年5月12日12:00:00 AM從下拉列表中選擇的值解析日期時間

DateTime weekStartDate = Convert.ToDateTime(DrpDwnGetPayPeriod.SelectedValue); 

下拉具有值2014年2014年5月5日5月12日。當我嘗試解析它時,由於字符串未被識別爲有效的DateTime,所以出現錯誤。 我嘗試以下操作:

DateTime weekStartDate = DateTime.ParseExact(DrpDwnGetPayPeriod.SelectedValue, "yyyy-MM-dd", CultureInfo.InvariantCulture); 
+0

Dateformatting是隻輸出 - 日期時間只是日期時間:-) –

+0

你取回一個'string'或'DateTime'?你想要什麼類型的最終結果? –

+0

@MortenAnderson日期格式也用於解析(輸入)。不只是輸出。 – mason

回答

1

該下拉菜單的值爲2014年5月5日,2014年5月12日。當我嘗試 解析它,我得到錯誤的字符串未被識別爲有效 日期時間

因此,這些都是在DropDownList條目:

05 May 2014 
12 May 2014 
21 Apr 2014 

,並希望將其解析到一個real DateTime。由於您使用的是你需要使用MMM個月名稱三個字母的縮寫

// presuming "21 Apr 2014" is DrpDwnGetPayPeriod.SelectedValue 
DateTime weekStartDate = DateTime.ParseExact("21 Apr 2014", "dd MMM yyyy", CultureInfo.InvariantCulture); 

然後你可以使用DateTime.ParseExact

MSDN:Custom Date and Time Format Strings

+0

確實工作..但仍然是一個問題......如果它是'2014年4月21日',不起作用。我在下拉菜單中使用前三個字母。 – user3590485

+0

@ user3590485:那麼你需要'MMM'幾個月,我已經編輯了我的答案。 –

1

這是你的問題有點不清楚。但是我假設你想知道「如何將某種格式的字符串轉換爲DateTime對象?」如果這不是你的問題,請澄清並意識到你需要在一開始就明確你的問題。

學會使用DateTime.ParseExact。並使用format strings。這給了我們...

DateTime weekStartDate = DateTime.ParseExact(DrpDwnGetPayPeriod.SelectedValue, "yyyy-MM-dd hh:mm:ss tt", System.Globalization.CultureInfo.CurrentCulture); 

請注意,您可能要使用DateTime.TryParseExact。這將允許您處理與指定格式不匹配的值。

+0

@Dunken必須確保DrpDwnGetPayPeriod中的日期處於預期格式。它們可能取決於您填充它的方式的區域設置。 – Larry

1

你只是試圖改變weekStartDate格式?你只需要沿着這些線做點什麼:

weekStartDate.ToString("yyyy/MM/dd hh:mm tt"); 

Here's an example

相關問題