要注意一下时区问题。一般来讲,需要校正一下,参考代码如下:var d = new Date();d.setHours(d.getHours(), d.getMinutes() - d.getTimezoneOffset());console.log(d.toISOString());
日期
时间
解析和处理库
ISO
-8601标准格式的日期和
时间
功能。
最初编写该库是为了允许灵活地解析一系列输入
时间
戳格式,并着重于
ISO
-8601
时间
戳。 解析产生Golang time.Time值。 建立此功能的愿望源于一个用Java编写的较早的项目,该项目中的
时间
戳输入采用各种格式,必须可靠地读取它们才能生成可用于生成输出文档的
时间
戳。
使用的代码,可以处理
ISO
-8601日期,
时间
段和
时间
跨度。 该代码在很大程度上未经修改就包含在内,因为它显然已经过优化,并且经过了大量思考和对准确性的仔细关注,从而得到了很好的结果。 包含期间词法检查包,但主要是为了与现有解析功能进行比较而编写的。 由于现有的解析速度快大约3倍,并且已经得益于对正确处理的仔细关注,因此有可能将其删除。
对
ISO
-8601
时间
戳记的
时间
戳记进行加权,以便允许某些不符合规定的格式的已解析输入,只要符合性问题确实允许接
java中
ISO
8601标准
时间
格式的转换
最近对接第三方平台接口,返回的日期是
ISO
8601标准
时间
(yyyy-MM-dd’T’HH:mm:ss.SSS’Z’),例:
"beginTime": "2018-08-07T14:44:04.923+08:00",
"endTime": "2018-08-07T14:54:18.183+08:00"
我这边需要用String格式(yyyy-MM-dd HH:mm:ss)来接收,试了很多方法,有些不能用,还有些不好用,最终选择的转换的方式如下:
先引入jar包:
国际标准
ISO
8601,是国际标准化组织的日期和
时间
的表示方法,全称为《数据存储和交换形式·信息交换·日期和
时间
的表示方法》。目前是2004年12月1日发行的第三版“
ISO
8601:2004”以替代1998年的第一版“
ISO
8601:1998”与2000年的第二版“
ISO
8601:2000”。
ISO
8601日期格式如下:
2012-03-29T10:05:45-06:00表示:中部标准
时间
2012年3月29日10:05:45。
ISO
8601持续
时间
格式如下:
最近遇到很多次2022-03-29T12:30:53.580Z ,这种带有字母T和字母Z的
时间
字符串。
遇到次数多了,逐渐引起我的好奇心,随即研究一下,写此文记录一下,所了解的内容。
这种
时间
格式怎么来的?
暂时发现两个方法可以生成这种格式的
时间
字符串
new Date().to
ISO
String() // '2022-03-29T12:47:13.645Z'
new Date().to
JS
ON() // '2022-03-29T12:47:35.036Z'
Date.protot
UTC
时间
类型比较常见,下例的
时间
就是UTC
时间
格式:
ISO
8601扩展格式为: YYYY-MM-DDTHH:mm:ss.sssZ 例如:(下图中红色边框圈起来的部分)
注意:只有兼容ECMAScript 5的实现才支持这种格式。支持这种
时间
格式的浏览器有:IE9,Chrome,FireFox,Safari等,IE9之前的IE浏览器 不支持这种
时间
格式。
将
ISO
8601时
function getTimeStamp(
iso
str) {
var parts =
iso
str.match(/\d+/g);
return new Date(parts[0]+'-'+parts[1]+'-'+parts[2]+' '+parts[3]+':'+parts[4]+':'+parts[5]).getTime();
可以使用JavaScript内置的Date对象来
获取
当前
时间
,并将
时间
设置为当天的开始
时间
和结束
时间
。以下代码可以
获取
今天的开始
时间
和结束
时间
:
var today = new Date();
var year = today.getFullYear(); //
获取
年份
var month = today.getMonth(); //
获取
月份,注意月份从0开始计数
var day = today.getDate(); //
获取
日期
var start = new Date(year, month, day, 0, 0, 0); // 将
时间
设置为当天的开始
时间
,即00:00:00
var end = new Date(year, month, day, 23, 59, 59); // 将
时间
设置为当天的结束
时间
,即23:59:59
var startStr = start.getTime(); //
获取
开始
时间
的
时间
戳
var endStr = end.getTime(); //
获取
结束
时间
的
时间
戳
以上代码中,startStr和endStr分别保存了今天的开始
时间
和结束
时间
的
时间
戳。如果需要将
时间
戳转换为日期对象,可以使用new Date()方法。例如,以下代码可以将开始
时间
的
时间
戳转换为日期对象:
var startDate = new Date(startStr);