静思夜 发表于 2016-4-17 11:08:03

Tizen设备时间:公开信息的日期、时间和时区代码

本教程演示了如何管理和执行不同的计算日期和时间信息和其他任务与日期和时间相关。API是强制性的时间Tizen移动和可穿戴的概要文件,这意味着它在所有移动和可穿戴设备支持。 强制所有api支持Tizen模拟器。热身熟悉的API通过学习基本知识:获取日期和时间获取当前日期和时间和所有可用的时区,并检查是否一个特定的一年是一个闰年。检索本地日期和时间格式获得当前时间和日期的格式使用。计算日期和时间信息与日期和时间数据执行计算和比较。检索时间更改通知监控时间和时区变化由用户执行的。
先决条件这个API中没有需要的特权。
获取日期和时间学习如何处理日期和时间在你的应用程序是一个基本的现场管理技能:1.获得当前日期和时间,使用 getCurrentDateTime () 方法,该方法返回一个 TZDate 对象:var current_dt = tizen.time.getCurrentDateTime();
console.log("Current time / date is " + current_dt.toLocaleString());
2.处理时区信息:
a.检索当前时区,使用 getLocalTimezone () 方法:console.log("The current time zone is " + tizen.time.getLocalTimezone());
时区的一般格式是“通用描述符/具体的特定描述符描述符1 / 2 /具体描述符n”。 例如,“美国/阿根廷/ Buenos_Aires”。
b.可用时区的数量,使用 getAvailableTimezones () 方法:var tzids = tizen.time.getAvailableTimezones();
console.log("The device supports " + tzids.length + " time zones.");
3.如果您正在创建一个基于日历的应用程序或接受申请表的日期,你必须为闰年日期值验证用户输入。 例如,29/02/2011是一个无效的用户输入。
确定今年是闰年,使用 isLeapYear () 方法:var current_dt = tizen.time.getCurrentDateTime();
var is_leap = tizen.time.isLeapYear(current_dt.getFullYear());
if (is_leap)
   console.log("This year is a leap year.");
getFullYear () 方法返回(4位数字) TZDate 对象。

检索本地日期和时间格式
学习如何处理日期和时间格式在你的应用程序是一个基本的现场管理技能:

1.检查日期格式,使用 getDateFormat () 方法:var dateFormat = tizen.time.getDateFormat();
console.log("Date format is " + dateFormat);
2.检查时间格式,使用 getTimeFormat () 方法:var timeFormat = tizen.time.getTimeFormat();
console.log("Time format is " + timeFormat);
计算日期和时间信息
学习如何计算和比较日期和时间信息是一个基本的时间管理技能:

计算时间之间的差异2日期或时间事件,使用 区别 () 的方法 TimeDuration 对象(在 移动 和 可穿戴 应用程序):var event1, event2; /* Assume that those are correct tizen.CalendarEvent objects */
/* Calculate event1.duration - event2.duration */
var diff = event1.duration.difference(event2.duration);
if (diff.length < 0)
   console.log("Event1 is longer than Event2.");
else if (diff.length == 0)
   console.log("Event1 is as long as Event2.");
else
   console.log("Event1 is shorter than Event2.");
注意:
单位返回的 TimeDuration 对象相当于最大的单位在源参数单位同时确保精度不损失结果。 例如,这意味着如果之间做比较“1小时”和“20分钟”,结果显示为40分钟,而不是0.67小时。 虽然小时比那一刻更大的单位,结果更精确,如果在几分钟内。

2.比较2 TimeDuration 对象为平等使用 equalsTo () 方法:var d1 = new tizen.TimeDuration(60, "MINS");
var d2 = new tizen.TimeDuration(1, "HOURS");
var ret = d1.equalsTo(d2); /* Returns true */
3.检查是否1 TimeDuration 对象是比另一个短,使用 不超过 () 方法:/* Check whether d1 is shorter than d2 */
var d1 = new tizen.TimeDuration(1, "HOURS");
var d2 = new tizen.TimeDuration(120, "MINS");
var ret = d1.lessThan(d2); /* Returns true */
4.检查是否1 TimeDuration 对象比另一个长,使用 greaterThan () 方法:/* Check whether d1 is longer than d2 */
var d1 = new tizen.TimeDuration(2, "HOURS");
var d2 = new tizen.TimeDuration(60, "MINS");
var ret = d1.greaterThan(d2); /* Returns true */
5.添加一个预定义的时间当前日期,使用 addDuration () 方法:/* Convert the current date to the date of the next day, at the same time */
var now = tizen.time.getCurrentDateTime();
var tomorrow = now.addDuration(new tizen.TimeDuration(1,"DAYS");
如果添加的数量是负数,日期或时间设置为较早时间的时刻。

检索时间更改通知
学习如何得到通知当用户更改时间和时区允许您在应用程序中对这些变化作出反应:

监控时间和时区的改变,定义事件处理程序:

1.时间改变调用事件处理程序,当用户调整时钟:function timeChangedCallback()
{
   try
   {
      var current_dt = tizen.time.getCurrentDateTime();
      console.log("Clock has been set. Current date/time is " + current_dt.toLocaleString());
   }
}
时区改变调用事件处理程序,当用户交换机时区:
function timezoneChangedCallback()
{
   try
   {
      /* New time zone can be retrieved through tizen.time.getLocalTimezone() */
      var zone = tizen.time.getLocalTimezone();
      console.log("Time zone has been set to " + zone);
   }
}
2.定义事件处理程序时,注册监听器:
注册时间改变侦听器使用 setDateTimeChangeListener () 的方法 TimeUtil 接口(在 移动 和 可穿戴 应用程序):tizen.time.setDateTimeChangeListener(timeChangedCallback);
注册使用的时区改变监听器 setTimezoneChangeListener () 的方法 TimeUtil 接口:tizen.time.setTimezoneChangeListener(timezoneChangedCallback);
3.收到通知,停止注销侦听器:
注销时间改变监听器,使用 unsetDateTimeChangeListener () 的方法 TimeUtil 接口:tizen.time.unsetDateTimeChangeListener();
要注销时区改变监听器,使用 unsetTimezoneChangeListener () 的方法 TimeUtil 接口:tizen.time.unsetTimezoneChangeListener();
页: [1]
查看完整版本: Tizen设备时间:公开信息的日期、时间和时区代码