c# - Xamarin Forms - 如何在 DatePicker 和 TimePicker 中获取正确的时间?
问题描述
我正在尝试在 Xamarin Forms 中为我的 DatePicker 和 TimePicker 获取正确的格式。
我需要以下列格式获取正确的日期和时间:
2020 年 12 月 5 日下午 4:12:34
但我一直以这种格式得到它:
2020 年 12 月 5 日 12:00:00 上午 17:31:23.2153540
我希望能够选择截止日期的日期和时间,并以正确的格式显示。
这是我的代码:
在我的 xaml 文件中:
<DatePicker x:Name="dueDatePicker" Date="{x:Static sys:DateTime.Today}" Format="MMM dd yyyy" MinimumDate="{x:Static sys:DateTime.Today}" HorizontalOptions="EndAndExpand" />
<TimePicker x:Name="dueTimePicker" HorizontalOptions="End" />
在我的 xaml cs 文件中,我正在使用此代码,但它以错误的格式显示:
dueDatePicker.Date.ToString() + " " + dueTimePicker.Time.ToString();
谢谢你。
解决方案
如果要显示格式 : 12/5/2020 04:12:34 PM
,则需要先添加Format
for TimePicker
。
<DatePicker x:Name="dueDatePicker"
Date="{x:Static sys:DateTime.Today}"
Format="MMM dd yyyy"
MinimumDate="{x:Static sys:DateTime.Today}"
HorizontalOptions="EndAndExpand" />
<TimePicker x:Name="dueTimePicker"
Format="HH:mm:ss"
HorizontalOptions="End" />
然后TimePicker
将显示来自的格式Xaml
,但是DatePicker
需要使用其他格式将显示想要的效果。
代码如下:
if(dueTimePicker.Time.Hours > 12)
{
Console.WriteLine("time is : " + dueDatePicker.Date.ToString("MM/d/yyyy") + dueTimePicker.Time.ToString() + " PM ");
}
else
{
Console.WriteLine("time is : " + dueDatePicker.Date.ToString("MM/d/yyyy") + dueTimePicker.Time.ToString() + " AM ");
}
控制台输出为:
09-29 13:51:41.771 I/mono-stdout(11803):时间是:09/29/2020 05:00:00 AM
09-29 13:51:59.149 I/mono-stdout(11803):时间是: 2020 年 9 月 29 日下午 17:00:00
推荐阅读
- sql-server - 从两个表中选择,其中第一个表列包含要从第二个表中获取的列的名称
- python - 仅绘制 matplot lib 中 datetime 对象的时间
- python - pip配置不好?
- python - 正则表达式函数删除除指定表达式之外的所有数字和标点符号?
- c# - .NET 服务参考 - Soap 客户端状态始终出现故障
- vue.js - 为什么 apollo muation 在 vuex 中返回“期望解析的 GraphQL 文档”?
- java - 我无法使用简单的表单访问 doGet 方法
- javascript - React Store 与全局对象有什么区别?
- linux - 我怎样才能让 systemd 文件在 wls ubuntu 20.04 上工作
- ios - 如何快速解析 API 请求的错误消息?