2015-10-08 76 views
1

我有兩個文本框,一個用於日期,另一個用於時間。輸入到這些文本框中的值將保存到數據庫中。但是當我重新加載頁面時,日期和時間已經重新格式化了。日期顯示爲10/10/2015 00:00:00,但它應該只是日期。時間顯示爲19:00:00,但我不想顯示最後的00。格式日期和時間文本框

Lookups.CloseTime p = new Lookups.CloseTime(ID); 

if (p != null) 
{ 
    txtDate.Text = p.CloseDate.ToString(); 
    txtTime.Text = p.CloseTime.ToString(); 
} 

對於數據庫:

private DateTime? _CloseDate; 
private TimeSpan? _CloseTime; 
public DateTime? CloseDate 
{ 
    get { return _CloseDate; } 
    set { _CloseDate = value; } 
} 

public TimeSpan? CloseTime 
{ 
    get { return _CloseTime; } 
    set { _CloseTime = value; } 
} 
+2

是什麼類型CloseDate/CloseTime? – fubo

+0

@fubo關閉日期是DateTime和CloseTime是TimeSpan – user123456789

回答

4

您可以使用爲DateTimeDateTime.ToShortDateStringDateTime.ToString("d")不受時間和TimeSpan.ToString("hh':'mm")TimeSpan不秒:

txtDate.Text = p.CloseDate.ToShortDateString(); 
txtTime.Text = p.CloseTime.ToString("hh':'mm"); 

如果CloseDateNullable<DateTime>你必須使用它的Value財產:

txtDate.Text = p.CloseDate.HasValue ? p.CloseDate.Value.ToShortDateString() : ""; 

同樣適用於TimeSpan?:使用.Date

txtTime.Text = p.CloseTime.HasValue ? p.CloseTime.Value.ToString("hh':'mm") : ""; 
+0

我不能使用ToShortDateString爲CloseDate,因爲它會導致此錯誤:System.Nullable '不包含'ToShortDateString'的定義並且沒有擴展方法''ToShortDateString'接受'System.Nullable '類型的第一個參數可以找到(你是否缺少使用指令或程序集引用?)' – user123456789

+0

並使用CloseTime.ToString(「hh':'mm」 );導致此錯誤:方法'ToString'沒有重載需要1個參數 – user123456789

+0

問題是,您使用可空的日期時間。如編輯所示,請改用p.CloseDate.Value。 –

1

會給你只是日期部分用zero'd時組件。這是一個內置的.NET方法,將保存任何定製的ToString()操作。

eg. DateTime.Now.Date

MSDN Link to DateTime.Date