2016-05-24 43 views
0

我有我在iOS應用程序(使用xamarin)中使用的日期選擇器和時間選擇器,我試圖檢索用戶選擇的日期和時間以在別處使用在代碼中。我的問題是,我不知道如何檢索日期或只是時間。例如,我有這個下面的代碼檢索日期:如何從日期選擇器後端檢索日期的格式化版本

// not getting proper date format! 
var selectedDate = ContactDatePicker.Date.ToString(); 
var selectedTime= ContactTimePicker.Date.ToString(); 
Console.WriteLine ("Here: {0}, {1}", selectedDate, selectedTime); 

但它輸出的日期和時間的整體像這樣每個變量:

Here: 2016-05-24 15:18:50 +0000, 2016-05-24 15:18:50 +0000 

我想獲得的東西如2016-05-24日期或類似15:18:50的時間。我意識到我可以使用正則表達式,但我想知道是否有一種簡單的方法來格式化日期。

回答

3

由於UIDatePicker.Date返回nsdate您可以先將其轉換爲DateTime,並將所需格式提供給ToString方法。

var dateTime = DateTime.SpecifyKind(ContactTimePicker.Date, DateTimeKind.Unspecified); 
var selectedDate = dateTime.ToString("yyyy-MM-dd"); 
var selectedTime= dateTime.ToString("HH:mm:ss");   
+0

我以前嘗試過這種方法,但我得到生成錯誤說有'無過載的方法ToString需要1 argument' –

+0

@ user3470987檢查我更新的答案。 –

1

如果ContactDatePicker.Date類型爲DateTime可以使用ToShortDateString()ToShortTimeString()ToLongTimeString

var selectedDate = ContactDatePicker.Date.ToShortDateString(); 
var selectedTime = ContactTimePicker.Date.ToLongTimeString(); 

//Output: 
2016-05-24 
15:18:50 

UIDatePicker文件,Date屬性返回一個NSDate,但也有一個隱式轉換到DateTime,所以你可以這樣做:

DateTime date = ContactDatePicker.Date //Implicit conversion 
var selectedDate = date.ToShortDateString(); 
var selectedTime = date.ToLongTimeString(); 
+0

它顯然不是'DateTime'因爲'.Date'沒有那個功能 –

+0

@ user3470987:更新回答 –

+0

謝謝,我不得不明確地轉換。我的輸出結果仍然不是我想要的('5/24/2016,3:55:35 PM'),但它至少是一個起點 –

0

感謝您的信息傢伙我最終使用:

// explicitly convert NSDate to DateTime to change format 
DateTime date = (DateTime)ContactDatePicker.Date; 
DateTime time = (DateTime)ContactTimePicker.Date; 

// able to overload ToString() method with argument to change format 
var selectedDate = date.ToString ("d"); 
var selectedTime = time.ToString ("HH:mm:ss"); 
相關問題