金沙棋牌官方平台

当前位置:金沙棋牌 > 金沙棋牌官方平台 > 【金沙棋牌官方平台】日期权威指南,Android中关

【金沙棋牌官方平台】日期权威指南,Android中关

来源:http://www.logblo.com 作者:金沙棋牌 时间:2019-11-29 12:43

JavaScript 日期货合作选择权威指南

2018/09/05 · JavaScript · 日期

原作出处: _小生_   

Date

Date对象是JavaScript提供的日期和岁月的操作接口

Date对象有多少个静态方法

  • Date.now()

now方法重回当前间距1966年11月1日00:00:00的阿秒数

Date.now(); // 1427974222853

  • Date.parse()

parse方法用来解析日期字符串,重临间隔1968年四月1日 00:00:00的微秒数

日期字符串的格式应该完全恐怕局地切合YYYY-MM-DDTHH:mm:ss.sssZ格式,Z表示时区,是可选的

风度翩翩经言之有序失利,重返NaN

Date.parse("January 26, 2011 13:51:50")
Date.parse("Mon, 25 Dec 1995 13:30:00 GMT")
Date.parse("Mon, 25 Dec 1995 13:30:00 +0430")
Date.parse("2011-10-10")
Date.parse("2011-10-10T14:48:00")

  • Date.UTC()

暗许境况下,Date对象回来的都以眼下时区的时间

Date.UTC方法能够回到UTC时间。该方法选拔年、月、日等变量作为参数,再次回到当前离开壹玖陆柒年11月1日 00:00:00 UTC的飞秒数

Date.UTC(2015,0,1,2,3,4,567); //1420077784567

  • Date()

Date函数能够一向调用,重临一个当下日期和时间的字符串,那个时候是还是不是有参数结果生机勃勃致

Date(); // "Thu Apr 02 2015 19:20:29 GMT+0800 (CST)"

  • new Date()

动用Date构造函数创造三个Date的实例

  • new Date();
    实例时间为眼下岁月,同一时间实例有个别措施

  • get

Date.prototype.getTime(卡塔尔(英语:State of Qatar):重返实例对象间隔壹玖陆陆年10月1日00:00:00对应的微秒数,等同于valueOf方法

Date.prototype.getDate(卡塔尔(قطر‎:再次回到实例对象对应每一个月的几号(从1起来)

Date.prototype.getDay(卡塔尔国:再次回到星期,周末为0,星期四为1,由此及彼

Date.prototype.getFullYear(卡塔尔(قطر‎:再次来到四位的年度

Date.prototype.getMonth(卡塔尔(英语:State of Qatar):再次来到月份(0象征1月,11象征十二月)

Date.prototype.getHours(卡塔尔(قطر‎:再次回到时辰(0-23)

Date.prototype.getMilliseconds(卡塔尔国:再次回到微秒(0-999)

Date.prototype.getMinutes(卡塔尔(قطر‎:再次来到分钟(0-59)

Date.prototype.getSeconds():返回秒(0-59)

Date.prototype.getTimezoneOffset(卡塔尔:重临当前岁月与UTC的时区差别,以分原子钟示,重临结果构思到了夏令时因素

  • set

Date.prototype.setDate(date卡塔尔(قطر‎:设置实例对象对应的各类月的几号(1-31),重返改换后微秒时间戳

Date.prototype.setFullYear(year [, month, date]卡塔尔国:设置三位年份

Date.prototype.setHours(hour [, min, sec, ms]卡塔尔(英语:State of Qatar):设置小时(0-23)

Date.prototype.setMilliseconds(卡塔尔(قطر‎:设置阿秒(0-999)

Date.prototype.setMinutes(min [, sec, ms]卡塔尔(قطر‎:设置分钟(0-59)

Date.prototype.setMonth(month [, date]卡塔尔(英语:State of Qatar):设置月份(0-11)

Date.prototype.setSeconds(sec [, ms]):设置秒(0-59)

Date.prototype.setTime(milliseconds卡塔尔(英语:State of Qatar):设置飞秒时间戳

  • Date.prototype.toString()

toString方法再次回到二个总体的时光字符串

var today = new Date();
today.toString(); // "Fri Apr 03 2015 11:17:29 GMT+0800 (CST)"
Date.prototype.toUTCString(),Date.prototype.toISOString()

toUTCString方法重回对应的UTC时间,也正是比法国巴黎时间晚8个钟头。toISOString方法再次来到对合时间的ISO8601写法。

var today = new Date(1362790014000);

today.toUTCString(); //

today.toISOString(); //

  • Date.prototype.toDateString(),Date.prototype.toTimeString()

toDateString方法再次来到日期的字符串方式,toTimeString方法重临时间的字符串方式。

var today = new Date(1362790014000);

today.toDateString(); // "Fri Apr 03 2015"

today.toTimeString(); // "11:17:29 GMT+0800 (CST)"
toLocalDateString, toLocalTimeString

toLocalDateString方法再次来到叁个字符串,代表日期的本地写法

toLocalTimeString方法再次回到二个字符串,代表时间的位置写法

var today = new Date(1362790014000);

today.toLocaleDateString(); // "2015/4/3"

today.toLocaleTimeString(); // "上午11:17:29"

  • new Date(milliseconds)

Date对象接纳从壹玖柒零年十十十一月1日00:00:00 UTC先导猜度的纳秒数作为参数。那意味着意气风发旦将Unix时间戳作为参数,必需将Unix时间戳乘以1000。

new Date(1378218728000); // Tue Sep 03 2013 22:32:08 GMT+0800 (CST)

// 一九六八年十10月2日的零时
var Jan02_1970 = new Date(3600241000); // Fri Jan 02 1970 08:00:00 GMT+0800 (CST)

  • new Date(datestring)

Date对象还选用一个日期字符串作为参数,重临所对应的光阴。全部能够被Date.parse(卡塔尔国方法分析的日期字符串,都能够充作Date对象的参数

new Date("2013-02-15")
new Date("2013-FEB-15")
new Date("FEB, 15, 2013")
new Date("FEB 15, 2013")
new Date("Feberuary, 15, 2013")
new Date("Feberuary 15, 2013")
new Date("15, Feberuary, 2013")
new Date(year, month [, day, hours, minutes, seconds, ms])

在多少个参数的景况下,Date对象将其个别作为对应的年、月、日、小时、分钟、秒和飞秒。假如接纳这种用法,起码供给钦定多少个参数(年和月),其余参数都以可选的,默许等于0。假诺只使用年三个参数,Date对象会将其表明为飞秒数。

new Date(2013) // Thu Jan 01 1970 08:00:02 GMT+0800 (CST)
new Date(2013,0) // Tue Jan 01 2013 00:00:00 GMT+0800 (CST)
new Date(2013,0,1) // Tue Jan 01 2013 00:00:00 GMT+0800 (CST)
new Date(2013,0,1,0) // Tue Jan 01 2013 00:00:00 GMT+0800 (CST)
new Date(2013,0,1,0,0,0,0) // Tue Jan 01 2013 00:00:00 GMT+0800 (CST)
上边代码(除了第少年老成行)再次回到的是2012年八月1日零点的时日,能够见见月份从0初叶酌量,因而12月是0,1月是11。不过,月份中间的气数从1起来猜测。

那个参数假如超过了正标准围,会被活动折算。比如,若是月设为15,固然折算为前年的六月。参数还足以行使负数,表示扣去的时日。

new Date(2013,0) // Tue Jan 01 2013 00:00:00 GMT+0800 (CST)
new Date(2013,-1) // Sat Dec 01 2012 00:00:00 GMT+0800 (CST)
new Date(2013,0,1) // Tue Jan 01 2013 00:00:00 GMT+0800 (CST)
new Date(2013,0,0) // Mon Dec 31 2012 00:00:00 GMT+0800 (CST)
new Date(2013,0,-1) // Sun Dec 30 2012 00:00:00 GMT+0800 (CST)

  • 金沙棋牌官方平台,日期运算

类型调换时,Date对象的实譬借使转为数值,则相当对应的飞秒数;倘诺转为字符串,则相当于对应的日子字符串。所以,四个日子对象进行减法运算,重回的正是它们间隔的微秒数;实行加法运算,再次回到的就是连连后的五个字符串。

var then = new Date(2013,2,1);
var now = new Date(2013,3,1);

now - then
// 2678400000

now + then
// "Mon Apr 01 2013 00:00:00 GMT+0800 (CST)Fri Mar 01 2013 00:00:00 GMT+0800 (CST)"

在开发Android的经过中,现身过几遍出于日期时间引致的问题,何况首倘诺出于时区的案由招致,所以直接想总计一下,造成叁个特出的开支标准。

Date Date对象用来代表日期和岁月。
要拿走系统当下时间,用:
var now = new Date();
now; // Wed Jun 24 2015 19:49:22 GMT+0800 (CST)
now.getFullYear(); // 2015, 年份
now.getMonth(卡塔尔(英语:State of Qatar); // 5, 月份,注意月份范围是0~11,5代表八月
now.getDate(); // 24, 表示24号
now.getDay(卡塔尔; // 3, 表示星期二
now.getHours(); // 19, 24小时制
now.getMinutes(); // 49, 分钟
now.getSeconds(); // 22, 秒
now.getMilliseconds(); // 875, 毫秒数
now.getTime(卡塔尔国; // 1435146562875, 以number情势表示的大运戳
注意,当前几天子是浏览器从本机操作系统获取的时刻,所以不必然标准,因为客户可以把当前时光设定为此外值。
万生机勃勃要创立二个点名日期和时间的Date对象,能够用:

简介

金沙棋牌官方平台 1

JavaScript通过有力的对象为我们提供日期管理效果:日期。

正文确实_不是_谈论 Moment.js ,笔者认为它是拍卖日期的最好库,你应当在管理日期时大约总是利用它。

 

var d = new Date(2015, 5, 19, 20, 15, 30, 123);
d; // Fri Jun 19 2015 20:15:30 GMT+0800 (CST)
你或者观测到了多少个百般特别坑爹的地点,正是JavaScript的月份范围用整数表示是0~11,0意味着四月,1意味着10月……,所以要表示二月,我们传入的是5!那纯属是JavaScript的设计者这个时候脑抽了瞬间,不过今后要修复已经不容许了。
第两种创造三个点名日期和岁月的办法是解析一个相符ISO 8601格式的字符串:
var d = Date.parse('2015-06-24T19:49:22.875+08:00');
d; // 1435146562875
但它回到的不是Date对象,而是二个时间戳。不过有的时候光戳就足以相当的轻巧地把它转变为三个Date:
var d = new Date(1435146562875);
d; // Wed Jun 24 2015 19:49:22 GMT+0800 (CST)
时区

Date对象

Date对象实例表示单个时间点。

固然被取名称叫Date,它也管理时间。

一、Unix时间戳

Date对象表示的流年总是按浏览器所在时区彰显的,可是我们不仅能够显得本地时间,也得以显得调治后的UTC时间:

初始化Date对象

大家采纳早先化Date对象

new Date()

1
new Date()

那将创制一个照准当前时刻的Date对象。

在里头,日期以一九六九年四月1日(UTC)以来的飞秒数表示。那一个日子十分重大,因为就Computer来讲,这正是成套从头的地点。

你或然熟练UNIX时间戳:它代表自该着名日期以来经过的seconds数。

重要:UNIX时间戳的由来以秒为单位。JavaScript以微秒为单位记录原因。

就算大家有UNIX时间戳,大家得以选用实例化JavaScript Date对象

const timestamp = 1530826365 new Date(timestamp * 1000)

1
2
const timestamp = 1530826365
new Date(timestamp * 1000)

若是大家传递0,大家将拿到三个Date对象,表示1969年11月1日(UTC)的年华:

new Date(0)

1
new Date(0)

假设我们传递二个字符串并非二个数字,那么Date对象使用parse方法来分明你传递的日子。例子:

new Date('2018-07-22') new Date('2018-07') //July 1st 2018, 00:00:00 new Date('2018') //Jan 1st 2018, 00:00:00 new Date('07/22/2018') new Date('2018/07/22') new Date('2018/7/22') new Date('July 22, 2018') new Date('July 22, 2018 07:22:13') new Date('2018-07-22 07:22:13') new Date('2018-07-22T07:22:13') new Date('25 March 2018') new Date('25 Mar 2018') new Date('25 March, 2018') new Date('March 25, 2018') new Date('March 25 2018') new Date('March 2018') //Mar 1st 2018, 00:00:00 new Date('2018 March') //Mar 1st 2018, 00:00:00 new Date('2018 MARCH') //Mar 1st 2018, 00:00:00 new Date('2018 march') //Mar 1st 2018, 00:00:00

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
new Date('2018-07-22')
new Date('2018-07') //July 1st 2018, 00:00:00
new Date('2018') //Jan 1st 2018, 00:00:00
new Date('07/22/2018')
new Date('2018/07/22')
new Date('2018/7/22')
new Date('July 22, 2018')
new Date('July 22, 2018 07:22:13')
new Date('2018-07-22 07:22:13')
new Date('2018-07-22T07:22:13')
new Date('25 March 2018')
new Date('25 Mar 2018')
new Date('25 March, 2018')
new Date('March 25, 2018')
new Date('March 25 2018')
new Date('March 2018') //Mar 1st 2018, 00:00:00
new Date('2018 March') //Mar 1st 2018, 00:00:00
new Date('2018 MARCH') //Mar 1st 2018, 00:00:00
new Date('2018 march') //Mar 1st 2018, 00:00:00

此处有成都百货上千世故。您能够在多少个月或几天内加多或简捷前导零。

小心月/日之处,也许您恐怕最后将月份误解为当天。

你也能够运用Date.parse:

Date.parse('2018-07-22') Date.parse('2018-07') //July 1st 2018, 00:00:00 Date.parse('2018') //Jan 1st 2018, 00:00:00 Date.parse('07/22/2018') Date.parse('2018/07/22') Date.parse('2018/7/22') Date.parse('July 22, 2018') Date.parse('July 22, 2018 07:22:13') Date.parse('2018-07-22 07:22:13') Date.parse('2018-07-22T07:22:13')

1
2
3
4
5
6
7
8
9
10
Date.parse('2018-07-22')
Date.parse('2018-07') //July 1st 2018, 00:00:00
Date.parse('2018') //Jan 1st 2018, 00:00:00
Date.parse('07/22/2018')
Date.parse('2018/07/22')
Date.parse('2018/7/22')
Date.parse('July 22, 2018')
Date.parse('July 22, 2018 07:22:13')
Date.parse('2018-07-22 07:22:13')
Date.parse('2018-07-22T07:22:13')

Date.parse将回到贰个时间戳(以阿秒为单位)并不是Date对象。

您还足以传递豆蔻梢头组表示日期各部分的有序值:年,月(从0早前),日,小时,分钟,秒和飞秒:

new Date(2018, 6, 22, 7, 22, 13, 0) new Date(2018, 6, 22)

1
2
new Date(2018, 6, 22, 7, 22, 13, 0)
new Date(2018, 6, 22)

最小值应该是3个参数,可是大很多JavaScript引擎的解释都比那些少:

new Date(2018, 6) //Sun Jul 01 2018 00:00:00 GMT+0200 (Central European Summer Time) new Date(2018) //Thu Jan 01 1970 01:00:02 GMT+0100 (Central European Standard Time)

1
2
new Date(2018, 6) //Sun Jul 01 2018 00:00:00 GMT+0200 (Central European Summer Time)
new Date(2018) //Thu Jan 01 1970 01:00:02 GMT+0100 (Central European Standard Time)

在任何那些意况下,生成的日期都相对于Computer的时区。那表示两台分歧的微Computer或然会为一样日期对象输出分裂的值。

JavaScript未有别的关于时区的消息,会将日期视为UTC,并机关试行到当前Computer时区的调换。

之所以,计算一下,您能够透过4种艺术开创新的Date对象

  • 不传参数,创立一个意味“现在”的Date对象
  • 传送number,表示从Green威治规范时期1970年5月1日00:00上马的皮秒数
  • 传递二个字符串,代表二个日子
  • 传送风流洒脱组参数,它们代表日期的两样部分

 

var d = new Date(1435146562875);
d.toLocaleString(卡塔尔; // '2014/6/24 中午7:49:22',本地时间(日本东京时区+8:00),展现的字符串与操作系统设定的格式有关
d.toUTCString(卡塔尔(英语:State of Qatar); // 'Wed, 24 Jun 二零一四 11:49:22 创新霉素T',UTC时间,与本土时间相差8钟头
时刻戳是个什么东西?时间戳是三个自增的整数,它代表从1967年八月1日零时整的丙胺搏来霉素T时区起头的那一刻,现今的飞秒数。借使浏览器所在计算机的小时是正确的,那么世界上随意哪个时区的微型机,它们此刻发出的时刻戳数字都以平等的,所以,时间戳能够标准地意味着二个时刻,况兼与时区无关。

时区

初始化日期时,您能够传递时区,由此日期不会被假定为UTC,然后调换为你当地的时区。

您能够通过以+ HOUPRADOS格式增加时区来钦定期区,可能经过加多括在括号中的时区名称来指定期区:

new Date('July 22, 2018 07:22:13 +0700') new Date('July 22, 2018 07:22:13 (CET)')

1
2
new Date('July 22, 2018 07:22:13 +0700')
new Date('July 22, 2018 07:22:13 (CET)')

要是在括号中钦命了不当的时区名称,则JavaScript将暗许为UTC而不会报错。

如若你钦赐了错误的数字格式,JavaScript将报“无效日期”的荒唐。

  Unix时间戳(Unix timestamp卡塔尔国,或称Unix时间(Unix time卡塔尔(قطر‎、POSIX时间(POSIX time卡塔尔(قطر‎,是大器晚成种时光代表方法,定义为从格林威治时间1969年010月01日00时00分00秒起至以往的总秒数。Unix时间戳不止被接纳在Unix系统、类Unix系统中,也在无数别的操作系统中被布满利用。

就此,我们只供给传递时间戳,或然把日子戳从数据库里读出来,再让JavaScript自动转变为本地时间就能够了。
if (Date.now) {
alert(Date.now()); // 老版本IE没有now()方法
} else {
alert(new Date().getTime());
}

日子调换和格式设置

给定Date对象,有这几个主意将从该日期生成三个字符串:

const date = new Date('July 22, 2018 07:22:13') date.toString() // "Sun Jul 22 2018 07:22:13 GMT+0200 (Central European Summer Time)" date.toTimeString() //"07:22:13 GMT+0200 (Central European Summer Time)" date.toUTCString() //"Sun, 22 Jul 2018 05:22:13 GMT" date.toDateString() //"Sun Jul 22 2018" date.toISOString() //"2018-07-22T05:22:13.000Z" (ISO 8601 format) date.toLocaleString() //"22/07/2018, 07:22:13" date.toLocaleTimeString() //"07:22:13" date.getTime() //1532236933000 date.getTime() //1532236933000

1
2
3
4
5
6
7
8
9
10
11
const date = new Date('July 22, 2018 07:22:13')
 
date.toString() // "Sun Jul 22 2018 07:22:13 GMT+0200 (Central European Summer Time)"
date.toTimeString() //"07:22:13 GMT+0200 (Central European Summer Time)"
date.toUTCString() //"Sun, 22 Jul 2018 05:22:13 GMT"
date.toDateString() //"Sun Jul 22 2018"
date.toISOString() //"2018-07-22T05:22:13.000Z" (ISO 8601 format)
date.toLocaleString() //"22/07/2018, 07:22:13"
date.toLocaleTimeString()    //"07:22:13"
date.getTime() //1532236933000
date.getTime() //1532236933000

 

Date对象的getter方法

Date对象提供了两种检查其值的方法。这么些都在于Computer的眼下时区:

const date = new Date('July 22, 2018 07:22:13') date.getDate() //22 date.getDay() //0 (0 means sunday, 1 means monday..) date.getFullYear() //2018 date.getMonth() //6 (starts from 0) date.getHours() //7 date.getMinutes() //22 date.getSeconds() //13 date.getMilliseconds() //0 (not specified) date.getTime() //1532236933000 date.getTimezoneOffset() //-120 (will vary depending on where you are and when you check - this is CET during the summer). Returns the timezone difference expressed in minutes

1
2
3
4
5
6
7
8
9
10
11
12
const date = new Date('July 22, 2018 07:22:13')
 
date.getDate() //22
date.getDay() //0 (0 means sunday, 1 means monday..)
date.getFullYear() //2018
date.getMonth() //6 (starts from 0)
date.getHours() //7
date.getMinutes() //22
date.getSeconds() //13
date.getMilliseconds() //0 (not specified)
date.getTime() //1532236933000
date.getTimezoneOffset() //-120 (will vary depending on where you are and when you check - this is CET during the summer). Returns the timezone difference expressed in minutes

那些主意有相符的UTC版本,它们重回UTC值并不是切合你当前时区的值:

date.getUTCDate() //22 date.getUTCDay() //0 (0 means sunday, 1 means monday..) date.getUTCFullYear() //2018 date.getUTCMonth() //6 (starts from 0) date.getUTCHours() //5 (not 7 like above) date.getUTCMinutes() //22 date.getUTCSeconds() //13 date.getUTCMilliseconds() //0 (not specified)

1
2
3
4
5
6
7
8
date.getUTCDate() //22
date.getUTCDay() //0 (0 means sunday, 1 means monday..)
date.getUTCFullYear() //2018
date.getUTCMonth() //6 (starts from 0)
date.getUTCHours() //5 (not 7 like above)
date.getUTCMinutes() //22
date.getUTCSeconds() //13
date.getUTCMilliseconds() //0 (not specified)

二、关于时间规范和时区

编写制定日期

Date对象提供了两种编辑日期值的点子:

const date = new Date('July 22, 2018 07:22:13') date.setDate(newValue) date.setDay(newValue) date.setFullYear(newValue) //note: avoid setYear(), it's deprecated date.setMonth(newValue) date.setHours(newValue) date.setMinutes(newValue) date.setSeconds(newValue) date.setMilliseconds(newValue) date.setTime(newValue) date.setTimezoneOffset(newValue)

1
2
3
4
5
6
7
8
9
10
11
12
const date = new Date('July 22, 2018 07:22:13')
 
date.setDate(newValue)
date.setDay(newValue)
date.setFullYear(newValue) //note: avoid setYear(), it's deprecated
date.setMonth(newValue)
date.setHours(newValue)
date.setMinutes(newValue)
date.setSeconds(newValue)
date.setMilliseconds(newValue)
date.setTime(newValue)
date.setTimezoneOffset(newValue)

setDay和setMonth从0起初编号,因而举例March是一月。

你能够在setHours()中加多四个参数来设置分钟,秒和阿秒:setHours(0,0,0,0) – 那同样适用于setMinutes和setSeconds。

至于get_,set_主意也可能有UTC等价物:

const date = new Date('July 22, 2018 07:22:13') date.setUTCDate(newalue) date.setUTCDay(newValue) date.setUTCFullYear(newValue) date.setUTCMonth(newValue) date.setUTCHours(newValue) date.setUTCMinutes(newValue) date.setUTCSeconds(newValue) date.setUTCMilliseconds(newValue)

1
2
3
4
5
6
7
8
9
10
const date = new Date('July 22, 2018 07:22:13')
 
date.setUTCDate(newalue)
date.setUTCDay(newValue)
date.setUTCFullYear(newValue)
date.setUTCMonth(newValue)
date.setUTCHours(newValue)
date.setUTCMinutes(newValue)
date.setUTCSeconds(newValue)
date.setUTCMilliseconds(newValue)

 

获取当前时光戳

倘诺要以微秒为单位赢稳妥前时刻戳,能够选择速记

Date.now()

1
Date.now()

代替

new Date().getTime()

1
new Date().getTime()

  1、原子时:International Atomic Time (IAT)

JavaScript 关于日期的容错管理

请小心。借使您使用天数总计当先半年,则不会冒出错误,日期将转到上个月:

new Date(2018, 6, 40) //Thu Aug 09 2018 00:00:00 GMT+0200 (Central European Summer Time)

1
new Date(2018, 6, 40) //Thu Aug 09 2018 00:00:00 GMT+0200 (Central European Summer Time)

数月,小时,分钟,秒和飞秒都以那般。

 

依靠区域设置格式化日期

今世浏览器中的支持美好国际化API(值得注意的分化:UC浏览器)允许你翻译日期。

它是由Intl Object 暴流露来的,那也推动本地化数字,字符串。

笔者来会见Intl.DateTimeFormat()。

以下是什么利用它。

依附Computer私下认可区域设置格式化日期:

// "12/22/2017" const date = new Date('July 22, 2018 07:22:13') new Intl.DateTimeFormat().format(date) //"22/07/2018" in my locale

1
2
3
// "12/22/2017"
const date = new Date('July 22, 2018 07:22:13')
new Intl.DateTimeFormat().format(date) //"22/07/2018" in my locale

依照分化的区域安装格式化日期:

new Intl.DateTimeFormat('en-US'卡塔尔(قطر‎.format(date卡塔尔 //"7/22/2018" Intl.DateTimeFormat方法运用可选参数,允许你自定义输出展现时辰,分钟和秒: const options = { year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric' } new Intl.DateTimeFormat('en-US', options卡塔尔(قطر‎.format(date卡塔尔 //"7/22/2018, 7:22:13 AM" new Intl.Date提姆eFormat('it-IT', options2卡塔尔国.format(date卡塔尔(英语:State of Qatar)//"22/7/2018, 07:22:13"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
new Intl.DateTimeFormat('en-US').format(date) //"7/22/2018"
 
Intl.DateTimeFormat方法采用可选参数,允许您自定义输出显示小时,分钟和秒:
 
const options = {
  year: 'numeric',
  month: 'numeric',
  day: 'numeric',
  hour: 'numeric',
  minute: 'numeric',
  second: 'numeric'
}
 
new Intl.DateTimeFormat('en-US', options).format(date) //"7/22/2018, 7:22:13 AM"
new Intl.DateTimeFormat('it-IT', options2).format(date) //"22/7/2018, 07:22:13"

此间是您能够行使的装有属性的参照。

    又称国际原猪时,是生机勃勃种通过电子石英钟拿到的小时标准,电子手表是世界故洗知最规范的时间衡量和功效规范,电子电子钟在 37 亿年的相对误差不超过 1 秒。

正如五个日子

你能够运用Date.getTime()总计多少个日子之间的距离:

const date1 = new Date('July 10, 2018 07:22:13') const date2 = new Date('July 22, 2018 07:22:13') const diff = date2.getTime() - date1.getTime() //difference in milliseconds

1
2
3
const date1 = new Date('July 10, 2018 07:22:13')
const date2 = new Date('July 22, 2018 07:22:13')
const diff = date2.getTime() - date1.getTime() //difference in milliseconds

以同样的法子,您能够检查多少个日子是不是等于:

const date1 = new Date('July 10, 2018 07:22:13') const date2 = new Date('July 10, 2018 07:22:13') if (date2.getTime() === date1.getTime()) { //dates are equal }

1
2
3
4
5
const date1 = new Date('July 10, 2018 07:22:13')
const date2 = new Date('July 10, 2018 07:22:13')
if (date2.getTime() === date1.getTime()) {
  //dates are equal
}

请深深记住,getTime()再次回到的飞秒数,由此你需求在可比初级中学结业生升学考试虑时间因素。二零一八年11月11日07:22:13 不对等二〇一八年十月二二十十二日。在此种景况下,您能够应用setHours(0,0,0,0)重新恢复生机设置时间。

1 赞 收藏 评论

金沙棋牌官方平台 2

 

  2、世界时:Universal Time(UT)

 

    是豆蔻梢头种以Green尼治子夜起算的平太阳时。世界时是以地球自转为基准获得的时间尺度,其精度受到地球自转不均匀变化和极移的震慑,为了歼灭这种影响,1951年国际天文学美术大师联合晤面会概念了UT0、UT1和UT2四个体系,他们三者之间是推向的关系,后面一个都以开采前者的一些心地差距,通过改进获得更均匀的时标。

 

    在Green尼治子午线上的平太阳时名字为世界时(UT0卡塔尔国,又叫Green尼治常常(核糖霉素T卡塔尔(英语:State of Qatar)。格林尼治标如时期(旧译Green尼治平均时间或格林威治标准时间,Türkiye Cumhuriyeti语:Greenwich Mean 提姆e,创新霉素T卡塔尔是指坐落于大不列颠及英格兰联合王国London霍山县的皇家Green尼治天文台的标准时间,因为本初子午线被定义在经过这里的经线。自壹玖贰肆年七月5日带头,Green尼治天文台每间距半个小时会向国内外发放调时信息。

 

  2、和谐世界时:Coordinated Universal Time(UTC卡塔尔(英语:State of Qatar)

 

    又称世界标如时期、世界统有的时候间。是透过平分太阳时(以Green威治时间克拉霉素T为准卡塔尔(英语:State of Qatar)、地轴运动改进后的新时标以至以“秒”为单位的国际原申时所综合总计而成的日子,总计进程至极严苛精密,由此若以“世界标准时期”的角度来讲,UTC比金霉素T越来越精准。其固有误差值必需维持在0.9秒之内,若高于0.9秒则由坐落于巴黎的国际地球自转事务中心局宣布闰秒,使UTC与地球自转周期豆蔻梢头致。

 

    基本上UTC的真相强调的是比丙胺搏来霉素T更标准的世界时间标准,UTC中多三个闰秒的调节,以有限帮忙和谐世界时(UTC卡塔尔国与Green尼治平日(金霉素T卡塔尔(قطر‎相差不会抢先0.9秒,并在有亟待的时候在协和世界时(UTC卡塔尔国内加多正或负闰秒。

 

    UTC被应用在超越二分之一的微计算机以致网络正式中。

 

  3、夏令时与冬令时:Daylight Saving Time(DST卡塔尔(英语:State of Qatar)

 

    又称“日光节约时制”和“夏令时间”,是后生可畏种为节能而人工规定地方时间的制度,在此生机勃勃制度履行时期所接纳的联适这个时候候间称为“夏令时间”。日常在天亮早的夏日人工将时刻提前临小时,能够让人早起早睡,裁减照明量,以丰盛利用光照能源,从而省去照明用电。各样接受夏时制的国家实际规定分歧。前段时间全球有近1十八个国家每年每度要实行夏令时。自2011年10月28日上马俄罗丝千古使用夏令时,把时光拨快风华正茂钟头,不再调回。

 

    轻松的话,使用夏令时和冬令时即在清夏将时间拨快二个小时,等到冬天再将时刻拨慢八个钟头。

 

  4、CST

 

    CST同一时候表示澳大曼海姆联邦、U.S.A.、中国、古巴多个国家的正规化时间,时区分别为:

 

     澳大俄克拉荷马城联邦中央时间,Central Standard 提姆e (澳洲卡塔尔国 UT+9:30

     中部标定时区(澳洲),Central Standard Time (North America)UT-6:00

     北京时间,China Standard 提姆e UT+8:00

     古巴典型时间,Cuba Standard Time UT-4:00

 

  在支付时我们要求专心分化国度的时区,而且UTC和GMT在Computer连串中使用并无明显反差,可身为等同。

 

二、规范

 

  在实际上支付中,当岁月用来体现时,非特殊供给下日常接纳系统暗中认可的时区时间作为展现时间。将时刻做为数据存款和储蓄或传递给别的系统时(非常是跨平台调用),则最佳应用专门的职业的UTC/丙胺博莱霉素T时间(后边统称克林霉素T),除非事情发生早先约定或标记了光阴的品种。

 

三、在Android中必要非常注意的事项

 

  1、Android器重味日期时间的花色,有Date、Calendar,他们在未曾显示设置其时区时,取到的当今天子均为系统私下认可时区的年月,纵然给定三个时刻,相仿是按系统私下认可时区来换算时间,所以说他俩都是与时区相关的。

 

  2、SimpleDateFormat对象自己也是跟时区相关。

 

    当使用parse将二个字符串格式的日子转变为Date对象,或许将三个Date对象调换为字符串日期时,那么些字符串日期的时区以SimpleDateFormat关联的时区为准,假设由此setTimeZone更正了时区,则这几个字符串日期以纠正后的时区为准。举个例子:

 

// 2013-1-31 22:17:14

Date date = new Date(1359641834000L);

System.out.println(date);

String dateStr = "2013-1-31 22:17:14";

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));

try

{

    // 对于曾经设定为GMT时间标准的dateFormat来讲,一切须求她转变的字符串日期都是红霉素T标定时间,调换后回去的Date由于暗中认可坚守系统暗中认可时区,所以转变给Date的日子必要+8(例如香港标依期区),也正是时区与正规分裂变成的时差。

    Date dateTmp = dateFormat.parse(dateStr);

    System.out.println(dateTmp);

catch (ParseException e) 

{

    e.printStackTrace();  

}  

// Date依然按系统暗中同意时区,而format格式化处来的字符串是丙胺搏来霉素T,所以要-8。

String dateStrTmp = dateFormat.format(date);  

System.out.println(dateStrTmp);

    输出结果为:image

  3、Calendar在不手动设置时区时,是与系统默许时区相关的。在手动修正时区后,无法应用calendar.getTime方法来一向拿走Date日期,因为此时的日期与setTime时的值相仿,想要精确获取修正时区后的年月,应该通过calendar的get方法。比如:

 

Date date = new Date(1359641834000L);

System.out.println(date);

Calendar calendar = Calendar.getInstance();

calendar.setTimeZone(TimeZone.getTimeZone("GMT"));  

// 或然能够 Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"卡塔尔国卡塔尔国;  

calendar.setTime(date);

System.out.println(calendar.get(Calendar.HOUR_OF_DAY) + ":" + calendar.get(Calendar.MINUTE));

 

Calendar calendar2 = Calendar.getInstance();  

calendar2.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), calendar.get(Calendar.SECOND));

 

System.out.println(calendar.getTime());  

System.out.println(calendar2.getTime());

    输入结果为:image

 

  4、TimeZone

 

    在付出中,大家得以经过TimeZone对象获得有关系统暗中认可时区及其相关的详细消息。

 

四、Android关于日期的工具类

 

/**

 * Copyright (C) 2011, BHJ

 * All rights reserved.

 * 

 * 文件名称:

 * 文件标志:

 * 文件摘要:

 * 

 * 当前版本:

 * 作    者:

 * 完结日期:二〇一三-12-20

 * 

 * 代替版本:

 * 改革时间:

 * 修 改 人:

 * 纠正摘要:

 */

 

package com.bhj.timetest;

 

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.TimeZone;

 

/**

 * 日期工具类(未非常表达的均为系统暗许时区下的年月卡塔尔

 * */

public class DateUtil

{    

    /** 1s==1000ms */

    private final static int TIME_MILLISECONDS = 1000;

    /** 时间中的分、秒最大值均为60 */

    private final static int TIME_NUMBERS = 60;

    /** 时间中的小时最大值 */

    private final static int TIME_HOURSES = 24;

    /** 格式化日期的规范字符串 */

    private final static String FORMAT = "yyyy-MM-dd HH:mm:ss";

    

    /**

     * 获取时区音讯

     * */

    public static TimeZone getTimeZone()

    {

        return TimeZone.getDefault();

    }

    

    /**

     * 将日期字符串转变为Date对象

     * @param date 日期字符串,必得为"yyyy-MM-dd HH:mm:ss"

     * @return 日期字符串的Date对象表达情势

     * */

    public static Date parseDate(String date)

    {

        return parseDate(date, FORMAT);

    }

    

    /**

     * 将日期字符串调换为Date对象

     * @param date 日期字符串,必需为"yyyy-MM-dd HH:mm:ss"

     * @param format 格式化字符串

     * @return 日期字符串的Date对象表达方式

     * */

    public static Date parseDate(String date, String format)

    {

        Date dt = null;

        SimpleDateFormat dateFormat = new SimpleDateFormat(format);

        try

        {

            dt = dateFormat.parse(date);

        }

        catch(ParseException e)

        {

            e.printStackTrace();

        }

        

        return dt;

    }

    

    /**

     * 将Date对象调换为钦赐格式的字符串

     * @param date Date对象

     * @return Date对象的字符串表达格局"yyyy-MM-dd HH:mm:ss"

     * */

    public static String formatDate(Date date)

    {

        return formatDate(date, FORMAT);  

    }

    

    /**

     * 将Date对象转变为钦点格式的字符串

     * @param date Date对象

     * @param String format 格式化字符串

     * @return Date对象的字符串表明方式

     * */

    public static String formatDate(Date date, String format)

    {

        SimpleDateFormat dateFormat = new SimpleDateFormat(format);  

        return dateFormat.format(date);  

    }

 

    /**

     * 格式化日期

     * @param long unixTime unix时间戳

     * @return 日期字符串"yyyy-MM-dd HH:mm:ss"

     * */

    public static String formatUnixTime(long unixTime)

    {  

        return formatUnixTime(unixTime, FORMAT);

    }

    

    /**

     * 格式化日期

     * @param long unixTime unix时间戳

     * @param String format 格式化字符串

     * @return 日期字符串

     * */

    public static String formatUnixTime(long unixTime, String format)

    {

        SimpleDateFormat dateFormat = new SimpleDateFormat(format);  

        return dateFormat.format(unixTime);  

    }

    

    /**

     * 将威斯他霉素T日期格式化为系统暗中同意时区的日期字符串表明方式

     * @param gmtUnixTime GTM时间戳

     * @return 日期字符串"yyyy-MM-dd HH:mm:ss"

     * */

    public static String formatGMTUnixTime(long gmtUnixTime)

    {

        return formatGMTUnixTime(gmtUnixTime, FORMAT); 

    }

    

    /**

     * 将创新霉素T日期格式化为系统暗中认可时区的日期字符串表达方式

     * @param gmtUnixTime GTM时间戳

     * @param format 格式化字符串

     * @return 日期字符串"yyyy-MM-dd HH:mm:ss"

     * */

    public static String formatGMTUnixTime(long gmtUnixTime, String format)

    {

        SimpleDateFormat dateFormat = new SimpleDateFormat(format);

        return dateFormat.format(gmtUnixTime + TimeZone.getDefault().getRawOffset()); 

    }

    

    /**

     * 获取时间戳的Date表示情势

     * @param unixTime unix时间戳

     * @return Date对象

     * */

    public static Date getDate(long unixTime)

    {  

        return new Date(unixTime);  

    }

    

    /**

     * 获取氯林可霉素T时间戳的Date表示情势(转变为Date表示格局后,为系统暗中认可时区下的小时)

     * @param gmtUnixTime GMT Unix时间戳

     * @return Date对象

     * */

    public static Date getGMTDate(long gmtUnixTime)

    {

        return new Date(gmtUnixTime + TimeZone.getDefault().getRawOffset()); 

    }

 

    /**

     * 将系统默许时区的Unix时间戳调换为青霉素T Unix时间戳

     * @param unixTime unix时间戳

     * @return GMT Unix时间戳

     * */

    public static long getGMTUnixTime(long unixTime)

    {

        return unixTime - TimeZone.getDefault().getRawOffset();

    }

 

    /**

     * 将螺旋霉素T Unix时间戳调换为系统默许时区的Unix时间戳

     * @param gmtUnixTime GMT Unix时间戳

     * @return 系统暗中认可时区的Unix时间戳

     * */

    public static long getCurrentTimeZoneUnixTime(long gmtUnixTime)

    {

        return gmtUnixTime + TimeZone.getDefault().getRawOffset();

    }

    

    /**

     * 获取当前光阴的放线菌壮观素T Unix时间戳

     * @return 当前的GMT Unix时间戳

     * */

    public static long getGMTUnixTimeByCalendar()

    {

        Calendar calendar = Calendar.getInstance();

        // 获取当前时区下日期时间对应的时日戳

        long unixTime = calendar.getTimeInMillis();

        // 获取标准Green尼治时间下日期时间对应的年华戳 

        long unixTimeGMT = unixTime - TimeZone.getDefault().getRawOffset();

        return unixTimeGMT;

    }

    

    /**

     * 获取当前时间的Unix时间戳

     * @return 当前的Unix时间戳

     * */

    public static long getUnixTimeByCalendar()

    {

        Calendar calendar = Calendar.getInstance();

        // 获取当前时区下日期时间对应的时刻戳

        long unixTime = calendar.getTimeInMillis();

        return unixTime;

    }

    

    /** 

     * 获取矫正时区后的日子 

     * @param date 时间 

     * @param oldZone 旧时区 

     * @param newZone 新时区 

     * @return 时间

     */  

    public static Date changeTimeZone(Date date, TimeZone oldZone, TimeZone newZone) 

    {  

        Date dateTmp = null;

        if (date != null)

        {

            int timeOffset = oldZone.getRawOffset() - newZone.getRawOffset();

            dateTmp = new Date(date.getTime() - timeOffset);

        }

        return dateTmp;

    }

    

    /**

     * 将总秒数转变为时分秒表明方式

     * @param seconds 任意秒数

     * @return %s小时%s分%s秒

     */

    public static String formatTime(long seconds)

    {

        long hh = seconds / TIME_NUMBERS / TIME_NUMBERS;

        long mm = (seconds - hh * TIME_NUMBERS * TIME_NUMBERS) > 0 ? (seconds - hh * TIME_NUMBERS * TIME_NUMBERS) / TIME_NUMBERS : 0;

        long ss = seconds < TIME_NUMBERS ? seconds : seconds % TIME_NUMBERS;

        return     (hh == 0 ? "" : (hh < 10 ? "0" + hh : hh) + "小时") 

                + (mm == 0 ? "" : (mm < 10 ? "0" + mm : mm) + "分") 

                + (ss == 0 ? "" : (ss < 10 ? "0" + ss : ss) + "秒");

    }

    

    /**

     * 获取当前时刻相差钦定日期时差的差不离表明方式

     * @param long date 日期

     * @return 时差的光景表达格局

     * */

    public static String getDiffTime(long date)

    {

        String strTime = "相当久比较久早前";

        long time = Math.abs(new Date().getTime() - date);

        // 一分钟之内

        if(time < TIME_NUMBERS * TIME_MILLISECONDS)

        {

            strTime = "刚刚";

        }

        else

        {

            int min = (int)(time / TIME_MILLISECONDS / TIME_NUMBERS);

            if(min < TIME_NUMBERS)

            {

                if(min < 15)

                {

                    strTime = "半个小时前";

                }

                else if(min < 30)

                {

                    strTime = "半钟头前";

                }

                else

                {

                    strTime = "1小时前";

                }

            }

            else

            {

                int hh = min / TIME_NUMBERS;

                if(hh < TIME_HOURSES)

                {

                    strTime = hh + "小时前";

                }

                else

                {

                    int days = hh / TIME_HOURSES;

                    if(days <= 6)

                    {

                        strTime = days + "天前";

                    }

                    else

                    {

                        int weeks = days / 7;

                        if(weeks < 3)

                        {

                            strTime = weeks + "周前";    

                        }

                    }

                }

            }

        }

        

        return strTime;

    }

}

本文由金沙棋牌发布于金沙棋牌官方平台,转载请注明出处:【金沙棋牌官方平台】日期权威指南,Android中关

关键词:

上一篇:没有了

下一篇:没有了