Windows Phone 8.1中日期和时间选择器DatePicker,TimePicker

开篇之前,推荐王磊老师的Windows 8.1中关于DatePicker和TimePicker的讲解

链接:重新想象 Windows 8.1 Store Apps (73) - 新增控件: DatePicker, TimePicker

首先Windows Phone 8.1的这两个选择器的使用和在Windows 8.1中的使用差不多。

1.前台DatePicker和TimePicker标签的使用没什么太大的问题,其中Header属性其实就是给选择器起个名字而已

DateChanged和TimeChanged分别表示选中日期或者时间变化时触发的事件

2.对于日期格式的问题,可以通过微软自带的模板设置显示格式(这个有很多种组合方式,按需书写,需要自己多摸索

摸索,最好查看MSDN文档)

链接:格式规范链接

3.对于Orientation属性的设置,我没有在wp中看出什么区别,不管设为Horizontal或者Vertical都是如下图显示的一样

      

4.在后台中可以对日期和时间选择器进行额外的设置和规定,以控制它的显示和行为

a.控件默认显示的日期是当天的日期,但我们可以对他进行控制,达到显示我们要求显示的日期

以下datePicker,datePicker1,datePicker3是前台DatePicker选择器的x:name属性值

方法一:datePicker1.Date = datePicker1.Date.AddYears(n);//控制显示的年份,n表示整数,最终年份显示为当前年

份加上n,可以正数可以负数

比如n=2,则当前2014+2=2016,显示2016年,如果n=-1,则是2012年

同理datePicker1.Date = datePicker1.Date.AddMonths(-2);和datePicker1.Date = datePicker1.Date.AddDays(3);,原

理一样

方法二:datePicker1.Date = DateTimeOffset.Now.AddYears(2);这个是依附你的机器时间来的,也就是说在你计算机

上的时间的基础上加减运算后显示日期

建议方法二少用,因为一旦以上两种方法混用,有时后者会对前者有影响。

比如之前设置为:

datePicker1.Date = datePicker1.Date.AddYears(2);

datePicker1.Date = DateTimeOffset.Now.AddMonths(2);

那么,年份设置会生效,依旧会显示当前年份,而不会再当前年份上加上2显示。而月份却可以正常加上2后显示

b.控制日期控件最大年份和最小年份显示的设定,但月份和日没有这样的设定!如下

datePicker.MinYear = datePicker.Date.AddYears(-4);     //控制控件允许的最小年份

datePicker.MaxYear = datePicker.Date.AddYears(4);     //控制控件允许的最大年份

或者:

datePicker.MinYear = DateTimeOffset.Now.AddYears(-4);   //控制控件允许的最小年份

datePicker.MaxYear = DateTimeOffset.Now.AddYears(4);   //控制控件允许的最大年份

以上两种方法区别都可以,第二种依附于计算机上的时间来设定的。直观一点的话,效果如下图所示:

                                      

c.控制控件的Year,Month,Day选择框是否显示,默认是true(显示),如果是以下情形,则如下图所示:

datePicker.YearVisible = false;

datePicker.MonthVisible = true;

datePicker.DayVisible = true;

可以看出就剩月份和日可以选择了。三种任你组合!

d.设置日期控件的日历系统,为了效果明显一点,我这边设置日本的,因为日本的都是以天皇年号来的

datePicker3.CalendarIdentifier = CalendarIdentifiers.Japanese;//这边设为日本日历系统

                      

那么还有关于时间选择器的就直接上代码,上面有注释

只要注意分钟最小分量的设定对时间点的影响就可以了,貌似小时和秒没有最小分量的设定!

//如果你控制控件显示的时间不是分钟选择框最小分量的整数倍,则分钟一栏从设置值自动调节到附近最接近最小分量值整数倍的那一数值
//控制控件显示的时间
timePicker.Time = new TimeSpan(3,22,0);
//控制控件分钟选择框的最小分量
timePicker.MinuteIncrement = 3;
//控件时间选择控件是12小时制还是24小时制
timePicker.ClockIdentifier = ClockIdentifiers.TwelveHour;//选择12小时制,也可以ClockIdentifiers.TwentyFourHour设置为24小时制

附上图更直观一些吧:注意我设置的是22分,但由于设置了分钟的最下分量为3,所以显示的时候实际显示的是21分


注意看这边分钟就是按3分钟为一单位:

5.日期,时间改变触发的事件

private void datePicker_DateChanged(object sender, DatePickerValueChangedEventArgs e)
{
     txtMsg.Text = e.NewDate.ToString("yyyy-mm-dd hh:mm:ss");
}

//格式规范链接:http://msdn.microsoft.com/zh-cn/library/ee372286.aspx
private void timePicker_TimeChanged(object sender, TimePickerValueChangedEventArgs e)
{
     txtMsg1.Text = e.NewTime.ToString("g");
}

思考,如果当前是12月,使用datePicker1.Date = datePicker1.Date.AddMonths(2);来控制控件显示月份,那么控件显

示的月份是2还是14呢?

显然14是不合常规,如果是的话怎么办呢,编程还是要不断动手不断动脑,问题要大量去实践才能解答。

以上就是我的一些认识和感悟,不一定都是对的,大家互相学习吧。

时间: 2024-08-03 05:17:38

Windows Phone 8.1中日期和时间选择器DatePicker,TimePicker的相关文章

PHP中日期和时间函数简介

PHP中日期和时间相关函数简介 一.UNIX时间戳 在当前大多数的UNIX系统中,保存当前日期和时间的方法是:保存格林尼治标准时间从1970年1月1日零点起到当前时刻的秒数,以32为整列表示.1970年1月1日零点也称为UNIX纪元.在Windows系统下也可以使用UNIX时间戳,简称时间戳,但如果时间在1970年以前或2038年以后,处理的时候可能会出现问题. PHP在处理有些数据,特别是对数据库中时间类型的数据进行格式化时,经常需要先将时间类型的数据转化为UNIX时间戳再进行处理,另外,不同

5 个关于 API 中日期和时间设计规则

规则 #1 使用ISO-8601格式作为你的日期格式 ISO 8601 解决了很多问题,包括: 自然排序 - 简单和优雅,免去多余的工作即可实现排序 时区偏移 - 代表用户的地点和时区在日益增长的全球化和移动世界中越来越重要. 地区中立性 - 想象一下噩梦一般的日期 2/3/4.这个日期随着你所处美国,欧洲或者其他地方而有不同的含义...这个日期在美国代表Feb 3, 2004,或者在其他地方代表Mar 2, 2004.在ISO 8601条款中,2004-02-03去掉了这些含糊的可能性. 在不

Android开发之日期、时间选择器(DatePicker和TimePicker)的功能和用法

日期.时间选择器(DatePicker和TimePicker)的功能和用法 DatePicker和TimePicker是两个比较常用的控件,它们都从FrameLayout派生而来,其中DatePicker用于选择日期.TimePicker用于选择时间. DatePicker和TimePicker在FrameLayout的基础上提供了一些方法来获取当前用户所选择的日期.时间:开发者可以通过为DatePicker添加OnDateChangedListener.为TimePicker添加OnTimeC

重新想象 Windows 8.1 Store Apps (73) - 新增控件: DatePicker, TimePicker

原文:重新想象 Windows 8.1 Store Apps (73) - 新增控件: DatePicker, TimePicker [源码下载] 作者:webabcd 介绍重新想象 Windows 8.1 Store Apps 之新增控件 DatePicker - 日期选择控件 TimePicker - 时间选择控件 示例1.演示 DatePicker 的应用DatePickerDemo.xaml <Page x:Class="Windows81.Controls.DatePickerD

MySQL中日期和时间类型

1 日期类型 MySql中关于日期的类型有Date/Datetime/Timestamp三种类型. 日期赋值时,允许"不严格"语法:任何标点符都可以用做日期部分或时间部分之间的间割符.例如,'98-12-31 11:30:45'.'98.12.31 11+30+45'.'98/12/31 11*30*45'和'[email protected]@31 11^30^45'是等价的,对于不合法的将会转换为:0000-00-00 00:00:00 1.1 Date格式 此类型的字段,存储数据

JDK中日期和时间的几个常用类浅析(五)

LocalDateTime   LocalDateTime是JDK8中才引入的类,用来表示不包含时区信息的本地日期和时间.我们可以把LocalDateTime看作是LocalDate和LocalTime的一个组合类.同样地,该类是一个不可变类,所以作用于该类对象上的方法都是返回一个该类的新对象.  通常,我们使用该类的静态工厂方法来创建该类对象.两种创建该类对象的示例代码如下:LocalDateTime ldt1 = LocalDateTime.now();LocalDateTime ldt2

Android中实现日期时间选择器(DatePicker和TimePicker)

利用Android应用框架提供的DatePicker(日期选择器)和TimePicker(时间选择器),实现日期时间选择器. Dialog的Content布局文件(date_time_dialog.xml): <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

JAVA中日期和时间的格式化选项

一.使用printf方法 1 import java.util.Date; 2 import java.util.Scanner; 3 4 5 public class Test { 6 7 public static void main(String[] args) { 8 9 System.out.printf("%tc"+"\n",new Date());//完整格式 10 System.out.printf("%tF"+"\n&

[转].NET 中日期和时间的格式化处理

http://www.0431cn.com/ygtd_wz_nr_2077.html 一.日期和时间的格式化处理: 1.绑定时格式化日期方法:  <asp:BoundColumn datafield="time" dataformatstring="{0:yyyy-MM-dd}"> </asp:BoundColumn> 2.数据控件如DataGrid/DataList等的件格式化日期方法:  e.Item.Cell[0].Text = Con