我有一个日期选择器和时间选择器,我正在我的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
时间的东西。我意识到我可以为此使用正则表达式,但我想知道是否有一种简单的方法来格式化日期。
由于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");
如果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();
感谢我最终使用的信息人员:
// 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");