在 C# Xamarin 中更改 DateFomat
Change DateFomat in C# Xamarin
我正在与 Android 一起开发 Xamarin。我在下面的 Project.The 代码中使用了 DatePicker
。
OnCreate
方法中的代码。
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Activity_register);
tiebirthdate = FindViewById<TextInputEditText>(Resource.Id.tiebirthdate);
tiebirthdate.Click += DateSelect_OnClick;
}
void DateSelect_OnClick(object sender, EventArgs e)
{
DatePickerFragment frag = DatePickerFragment.NewInstance(delegate (DateTime time)
{
var dateAndTime = time;
var tt = dateAndTime.Date;
tiebirthdate.Text = tt.ToString("dd/MM/yyyy");
});
frag.Show(FragmentManager, DatePickerFragment.TAG);
}
创建Class。
class DatePickerFragment : DialogFragment,
DatePickerDialog.IOnDateSetListener
{
public static readonly string TAG = "X:" + typeof(DatePickerFragment).Name.ToUpper();
// Initialize this value to prevent NullReferenceExceptions.
Action<DateTime> _dateSelectedHandler = delegate { };
public static DatePickerFragment NewInstance(Action<DateTime> onDateSelected)
{
DatePickerFragment frag = new DatePickerFragment();
frag._dateSelectedHandler = onDateSelected;
return frag;
}
public override Dialog OnCreateDialog(Bundle savedInstanceState)
{
DateTime currently = DateTime.Now;
DatePickerDialog dialog = new DatePickerDialog(Activity,
this,
currently.Year,
currently.Month,
currently.Day);
return dialog;
}
public void OnDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
DateTime selectedDate = new DateTime(year, monthOfYear + 1, dayOfMonth);
_dateSelectedHandler(selectedDate);
}
}
在我尝试之后,我最终设置了 DateTime
这样的格式 "dd/MM/yyyy"
。但是我的服务器需要这样的日期格式 "yyyy-MM-dd'T'HH:mm:ss'Z'"
。那么如何更改 DateTime
格式,如 upper.
不胜感激。
tiebirthdate.Text = dateAndTime.ToString("yyyy-MM-dd'T'HH:mm:ss'Z'", CultureInfo.InvariantCulture);
你可以这样试试
您可以使用DateTime.ParseExact方法。请参阅引用的 MSDN 页面中的示例。
我正在与 Android 一起开发 Xamarin。我在下面的 Project.The 代码中使用了 DatePicker
。
OnCreate
方法中的代码。
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Activity_register);
tiebirthdate = FindViewById<TextInputEditText>(Resource.Id.tiebirthdate);
tiebirthdate.Click += DateSelect_OnClick;
}
void DateSelect_OnClick(object sender, EventArgs e)
{
DatePickerFragment frag = DatePickerFragment.NewInstance(delegate (DateTime time)
{
var dateAndTime = time;
var tt = dateAndTime.Date;
tiebirthdate.Text = tt.ToString("dd/MM/yyyy");
});
frag.Show(FragmentManager, DatePickerFragment.TAG);
}
创建Class。
class DatePickerFragment : DialogFragment,
DatePickerDialog.IOnDateSetListener
{
public static readonly string TAG = "X:" + typeof(DatePickerFragment).Name.ToUpper();
// Initialize this value to prevent NullReferenceExceptions.
Action<DateTime> _dateSelectedHandler = delegate { };
public static DatePickerFragment NewInstance(Action<DateTime> onDateSelected)
{
DatePickerFragment frag = new DatePickerFragment();
frag._dateSelectedHandler = onDateSelected;
return frag;
}
public override Dialog OnCreateDialog(Bundle savedInstanceState)
{
DateTime currently = DateTime.Now;
DatePickerDialog dialog = new DatePickerDialog(Activity,
this,
currently.Year,
currently.Month,
currently.Day);
return dialog;
}
public void OnDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
DateTime selectedDate = new DateTime(year, monthOfYear + 1, dayOfMonth);
_dateSelectedHandler(selectedDate);
}
}
在我尝试之后,我最终设置了 DateTime
这样的格式 "dd/MM/yyyy"
。但是我的服务器需要这样的日期格式 "yyyy-MM-dd'T'HH:mm:ss'Z'"
。那么如何更改 DateTime
格式,如 upper.
不胜感激。
tiebirthdate.Text = dateAndTime.ToString("yyyy-MM-dd'T'HH:mm:ss'Z'", CultureInfo.InvariantCulture);
你可以这样试试
您可以使用DateTime.ParseExact方法。请参阅引用的 MSDN 页面中的示例。