2016-01-21 58 views
1

我從Telerik的日期選擇器以選定的日期,並想借此在24小時格式選擇日期和當前系統時間和創建日期與當前時間想日期是這樣的:無法從字符串

對於防爆:Current Date = dd/mm/yy HH:Minutes:Seconds

21/1/2016 14:48:21 

這是我的代碼:

DateTime dt = DateTime.ParseExact(Datepicker1.SelectedDate.Value.ToShortDateString(), "dd/MM/yyyy", CultureInfo.InvariantCulture);//Error:String was not recognized as a valid DateTime. 

Datepicker1.SelectedDate.Value= {1/21/2016 12:00:00 AM} 
Datepicker1.SelectedDate.Value.ToShortDateString()=1/21/2016 

錯誤字符串爲:N在Datetime.ParseExact上被識別爲有效的日期時間。

回答

1

"dd/MM/yyyy" 

"M/d/yyyy" or "M/d/yyyy h:m:s tt" //the first one use .ToShortDateString(), the second one for 1/21/2016 12:00:00 AM 

第一個只需要照顧的情況下像21/12/1997

更改ParseExact您的格式第二個需要照顧12/21/19972/21/199712/2/1997 ,和2/1/1997除了照顧時間此外,請注意,您可能會考慮使用多種格式(以防萬一):"d/M/yyyy H:m:s","d/M/yyyy h:m:s tt"負責處理交換日期和月份以及當您有AM/PM的情況。

MSDN link

+0

我想ddate /月/年作爲日期格式,你還沒有考慮機器文化 –

+0

@學習在這種情況下,然後交換日和月。文化需要通過「CultureInfo」來解決。但是既然你使用了'Datepicker1.SelectedDate.Value.ToShortDateString()',那麼'DateTime.ParseExact'的''M/d/yyyy''或''d/M/yyyy''會做。 – Ian

+0

我已經試過這個,但仍然得到相同的錯誤:DateTime dt = DateTime.ParseExact(Datepicker1.SelectedDate.Value.ToShortDateString(),「d/M/yyyy HH:mm:ss」,null); –

1
@yourDateTime.FormattedReviewDate.ToString("MMM dd,yyyy") 

你甚至可能只是一個簡單的屬性添加到日期時間的格式顯示:

public string FormattedReviewDate 
{ 
    get { return ReviewDate.ToString("MMM dd,yyyy"); } 
} 

注:給你所需要的格式

1

你並不需要解析什麼

Datepicker1.SelectedDate.Value已經DateTime,只是指定這個價值,你的dt變量。

DateTime dt = Datepicker1.SelectedDate.Value; 

如果你想獲得它是一個基於您的格式字符串表示,只要使用ToString方法與正確的格式。

string formattedDate = dt.ToString("dd/M/yyyy HH:mm:ss", CultureInfo.InvariantCulture); 

返回21/1/2016 14:48:21作爲string

此外,如果你想1/21/2016作爲一個字符串,只需要改變你的格式爲M/dd/yyyy像;

string formattedDate = dt.ToString("M/dd/yyyy", CultureInfo.InvariantCulture); 
+0

我期待着你的回答,因爲當我在尋找這個問題時,我已經找到了你的答案,並且已經閱讀了它,並且很好的解釋和閱讀後,我只能理解這種文化 –

+0

@Learning文化設置適用於將字符串解析爲DateTime或生成DateTime字符串表示形式的規則。 –

+0

其實問題是我的系統日期時間是月/日格式,我指定日期/月格式,這就是它給錯誤的原因 –