2016-12-03 25 views
0

你好,並感謝您的時間c#Winform DateTime顯示時間只在Datagrid

我有一個DateTime選擇器填充到DataGrid。我遇到的問題是我只想要時間,首選(軍事時間)。我已經嘗試過.ToString .TimeOfDay等等。我認爲最後一行代碼(today.year,month,day)是問題,但不知道如何糾正它。

var start_time = dateTimePicker1.Text; 
var start_time_array = start_time.Split(':'); 
var today = DateTime.Now; 
var trailer_count = Convert.ToInt32(tbTrailer_Needed.Text); 
var minutes_apart = Convert.ToDouble(tbTime_Between.Text); 
var calculated_start_time = new DateTime(today.Year, today.Month, 
    today.Day, Convert.ToInt16(start_time_array[0]), 
    Convert.ToInt16(start_time_array[1]), 00); 
+0

嘗試'的ToString(「HH:MM: ss「)' –

+0

這給了我最後一行代碼的錯誤。 – Booney440

+0

請檢查這個答案http://stackoverflow.com/questions/5593686/make-datetimepicker-work-as-timepicker-only-in-winforms –

回答

0

試試這個。現在,您是否在另一行上進行了字符串轉換,以便更好地確定在第一次謊言中是否有錯誤。

var calculated_start_time = new DateTime(today.Year, today.Month, 
    today.Day, Convert.ToInt16(start_time_array[0]), 
    Convert.ToInt16(start_time_array[1]), 00); 
string time = calculated_start_time.ToString("HH:mm"); 

但是,這並不完全清楚你想要完成什麼。如果我理解正確,以下是您可能需要考慮的選項。設置日期時間選擇器只顯示時間https://msdn.microsoft.com/en-us/library/ms229631.aspx

timePicker.Format = DateTimePickerFormat.Time; 

然後,我覺得有以下應該工作,但我現在不能測試。

string dateTimeYouWant = DateTime.Today.Add(DateFromTimePicker.TimeOfDay); 

您甚至可能不需要做任何事情,因爲DateFromTimePicker可能已經基於今天,但我不確定。

========編輯=====

你需要知道的事情。

  1. 要獲得從dateTimePicker的,你應該使用.value的,而不是。文本價值,.value的將返回一個DateTime,這就是你要使用的東西。
  2. 要獲得「今日」,您應該使用DateTime.Today而不是DateTime.Now。 DateTime.Today將會將分鐘,小時等設置爲零。
    1. 如果你是新手,我會避免使用var,並會給出真正的類型。

現在讓我們來看看你的代碼

var start_time = dateTimePicker1.Text; 
    var start_time_array = start_time.Split(':'); 
    var today = DateTime.Now; 
    var trailer_count = Convert.ToInt32(tbTrailer_Needed.Text); 
    var minutes_apart = Convert.ToDouble(tbTime_Between.Text); 
    var calculated_start_time = new DateTime(today.Year, today.Month, 
    today.Day, Convert.ToInt16(start_time_array[0]), 
    Convert.ToInt16(start_time_array[1]), 00); 

讓我們去掉那些2線是對你的問題沒有影響

var start_time = dateTimePicker1.Text; 
    var start_time_array = start_time.Split(':'); 
    var today = DateTime.Now;  
    var calculated_start_time = new DateTime(today.Year, today.Month, 
    today.Day, Convert.ToInt16(start_time_array[0]), 
    Convert.ToInt16(start_time_array[1]), 00); 

你想通過它來取代所有的代碼:

DateTime calculated_start_time = DateTime.Today.Add(dateTimePicker1.Value.TimeOfDay); 

,並使其更好地配置您的DateTimePicker(在窗體或屬性編輯器的初始化),這樣用戶傾斜選擇一個日期,但只有時間:

dateTimePicker1.Format = DateTimePickerFormat.Time; 
dateTimePicker1.ShowUpDown = true; 
+0

是的,我只想顯示時間,但不知道要添加到哪條線。我對此很陌生。謝謝 – Booney440

+0

我編輯我的帖子更多的信息。 –

+0

我已添加.Value,今天並設置爲Ture。它仍然會在數據網格中返回12/3/16 8:28。 – Booney440

0

使用dateTimePicker.ValueDateTime.TimeofDay

var calculated_start_time = DateTime.Today + dateTimePicker1.Value.TimeofDay; 
+0

錯誤來自.value和TimeOfDay – Booney440

+0

@ Booney440,有什麼錯誤? –

+0

值沒有擴展方法,不知道這很難顯示時間只在DataGrid中 – Booney440