2013-05-17 56 views
0

在我的XML獲取的日期時間的確切格式我有一個日期值,如下所示:從XML文件

[CDATA[07/07/1980]] 

我做了以下檢索日期:

public static DateTime? GetDateTimeValue(string dateTimeString) 
    { 
     DateTime i; 
     if ((dataTimeString != null) && (dataTimeString.Value.Trim() != "")) 
      if (DateTime.TryParse(dateTimeString, out i)) 
       return i; 

     return null;   
    } 

值我得到的是07/07/1980 12:00:00 AM

我可以做到以下幾點:

DatdTime.TryParse(dateTimeString.ToShortDateString()) 

但我不想操縱以任何方式的數據。我想按照原樣獲取日期。

任何幫助將不勝感激。

+1

而不是'(dataTimeString!= null)&&(dataTimeString.Trim()!=「」)'只是'string.IsNullOrWhiteSpace(dateTimeString)' –

+0

'dateTimeString.ToShortDateString'?一個字符串不是'DateTime'。字符串也沒有'Value'屬性('dataTimeString.Value.Trim')。請提供編譯代碼。 –

+0

做tryparse時不需要整件事 –

回答

0

以下是我使用的方法,但我不使用可空的DateTime

private static DateTime nodate = new DateTime(1900, 1, 1); 
public static DateTime NODATE { get { return nodate; } } 

public static DateTime GetDate(object obj) { 
    if ((obj != null) && (obj != DBNull.Value)) { // Databases return DBNull.Value 
    try { 
     return Convert.ToDateTime(obj); 
    } catch (Exception) { } 
    try { 
     return DateTime.Parse(obj.ToString()); 
    } catch (Exception) { } 
    } 
    return NODATE; 
} 

我不能總是用TryParse,因爲很多我的代碼必須是Compact Framework的安全。

如果出現任何問題,我會在我的日期欄中看到我的NODATE值(1900年1月1日)。猜測我的大部分數據庫程序都沒有日期,如果他們試圖顯示一些表明他們是在1900年1月1日輸入的東西,這是非常安全的。畢竟:每個人都有新年關,對不對? :)

+1

是DateTime.MinValue不可用於Compact Framework嗎?這將爲您節省定義NODATE的麻煩 – Jason

+0

看起來像'DateTime.MinValue'是日期時間(0001,1,1)。很多東西可能會使用它。我將不得不檢查SQLite是否可以降到最低。 – jp2code

+1

還有SqlDateTime.MinValue&SqlDateTime.MaxValue與SQL服務器一起工作,不知道關於sqlite – Jason