C# 如何从日期选择器后端检索日期的格式化版本
我在iOS应用程序中使用了一个日期选择器和时间选择器(使用xamarin),我试图检索用户选择的日期和时间,以便在代码的其他地方使用。我的问题是,我不知道如何检索日期或时间。例如,我使用以下代码检索日期:C# 如何从日期选择器后端检索日期的格式化版本,c#,ios,date,xamarin,uidatepicker,C#,Ios,Date,Xamarin,Uidatepicker,我在iOS应用程序中使用了一个日期选择器和时间选择器(使用xamarin),我试图检索用户选择的日期和时间,以便在代码的其他地方使用。我的问题是,我不知道如何检索日期或时间。例如,我使用以下代码检索日期: // not getting proper date format! var selectedDate = ContactDatePicker.Date.ToString (); var selectedTime= ContactTimePicker.Date.ToString (); Con
// 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
。我意识到我可以使用regex来实现这一点,但我想知道是否有一种简单的方法来格式化日期。因为返回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");
由于返回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
,则可以使用ToSortDateString()
和ToSortTimeString()
或ToLongTimeString
:
var selectedDate = ContactDatePicker.Date.ToShortDateString();
var selectedTime = ContactTimePicker.Date.ToLongTimeString();
//Output:
2016-05-24
15:18:50
根据的文档,Date
属性返回一个NSDate
,但存在到DateTime
的隐式转换,因此您可以执行以下操作:
DateTime date = ContactDatePicker.Date //Implicit conversion
var selectedDate = date.ToShortDateString();
var selectedTime = date.ToLongTimeString();
如果
ContactDatePicker.Date
类型为DateTime
,则可以使用ToSortDateString()
和ToSortTimeString()
或ToLongTimeString
:
var selectedDate = ContactDatePicker.Date.ToShortDateString();
var selectedTime = ContactTimePicker.Date.ToLongTimeString();
//Output:
2016-05-24
15:18:50
根据的文档,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");
感谢我最终使用的信息:
// 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");
我以前尝试过这个方法,但是我得到一个生成错误,说方法ToString takes 1参数没有重载我以前尝试过这个方法,但是我得到了一个构建错误,说方法ToString takes 1参数没有重载,这显然不是
DateTime
,因为。Date
没有这个函数谢谢,不过我必须显式转换。我的输出仍然不是我用你的方法想要的(2016年5月24日,下午3:55:35
),但它至少是一个起点,显然不是DateTime
,因为。Date
没有那个功能。谢谢,我必须明确转换。我的输出仍然不是我用你的方法想要的(2016年5月24日,下午3:55:35
),但它至少是一个起点