2017-07-07 57 views
0

我正在使用實體框架的asp網絡核心。我有一個datetimepicker我正在使用日曆。我已經使用jquery自定義了它的格式。datetime格式從mm-dd-yyyy轉換爲yyyy-mm-dd在c#

$('.datepicker').datetimepicker({ 
     format: 'yyyy-mm-dd'  
    }); 

這顯示了用戶的日期形式。 ,然後將其轉換爲C#datetime我將它以相同的格式保存在數據庫中。每件事情都是正確的,直到現在。 現在我下次訪問時,如果有數據,此頁面必須預先填寫。這次在日曆的文本框中顯示了一些東西,如0007/02/19,其中輸入的日期爲1993/07/02,保存在數據庫中的日期爲7/2/1993。我試過使用

  String DateString = Convert.ToString(ProfileDetails.DateOfBirth); 
      IFormatProvider culture = new CultureInfo("en-US"); 

      DateTime dateVal = DateTime.ParseExact(DateString, "MM/dd/YYYY", CultureInfo.InvariantCulture); 
      DateTime date = Convert.ToDateTime(dateVal); 
      user.DateOfBirth = dateVal; 

這個,但得到的錯誤字符串不是有效的日期時間格式。在我的模式中,我將日期定義爲日期時間。我沒有得到解決方案。任何人都可以給我正確的方式來完成這一點。

+0

您的文章是相當混亂。你在你的第一行代碼中將一個日期轉換爲一個字符串,但是接下來會做一些其他我不太關注的東西。你能解釋另外四行代碼的用途嗎? – Chris

+0

@Chris我也不理解代碼,但我只是修復併發布了一個答案。有時候最好不要問 –

+0

@ J.Doe:除了你的分析結果是平的,因爲我現在已經對你的回答發表了評論。我認爲第一行生成類似「07/02/1993」的日期字符串是相當合理的,但由於日期選擇器需要'yyyy-mm-dd'格式的東西,因此它可能會嘗試聰明並將日期解析爲「 yyyy = 07,mm = 02,dd = 19'。這就是爲什麼知道其他代碼在哪裏會非常有用,爲什麼OP還應該明確它們如何將數據傳遞到日期選擇器或文本框。 – Chris

回答

0

因爲你正在使用MM/dd/YYYY代替MM/dd/yyyy

工作代碼:

String DateString = Convert.ToString("07/02/1993"); 
IFormatProvider culture = new CultureInfo("en-US"); 
DateTime dateVal = DateTime.ParseExact(DateString, "MM/dd/yyyy", CultureInfo.InvariantCulture); 
+0

我不明白這段代碼。原始代碼中的'ProfileDetails.DateOfBirth'必須是DateTime,否則沒有任何一點調用'Convert.ToString'。你的第二行不需要,因爲你從不使用文化。你從YYYY改爲yyyy的行可能有用,但幾乎肯定不是問題的原因,因爲YYYY實際上會導致該行拋出'FormatException',除非給定的日期看起來像「07/02/YYYY」,我非常懷疑它是。 – Chris

+0

這只是從問題「修復」@Rishabh代碼。沒有更多的,不少於 –

+0

我的觀點是,雖然它可能糾正一個錯誤,但它幾乎肯定不會解決用戶的問題,因此也不是真正的問題答案。 – Chris

相關問題