我正在尝试使用
将数据发送到端口2003上的石墨碳缓存进程1)Ubuntu终端
echo "test.average 4 `date +%s`" | nc -q0 127.0.0.1 2003
2)NODEJS
var socket = net.createConnection(2003, "127.0.0.1", function() {
socket.write("test.average "+assigned_tot+"\n");
socket.end();
});
我在ubuntu上使用终端窗口命令发送数据时工作正常。但是,我不知道如何从nodejs发送时间戳unix纪元格式?
Grpahite以此格式度量指标metric_path值时间戳\ n
答案 0 :(得分:102)
原生JavaScript Date
系统在几秒内工作,而不是秒,但除此之外,它与UNIX中的“纪元时间”相同。
你可以通过执行以下操作来舍入一小段时间并获得UNIX纪元:
Math.floor(new Date() / 1000)
答案 1 :(得分:15)
如果可以,我强烈建议您使用moment.js
。要获得自UNIX纪元以来的毫秒数,请执行
moment().valueOf()
要获得自UNIX纪元以来的秒数,请执行
moment().unix()
你也可以像这样转换时间:
moment('2015-07-12 14:59:23', 'YYYY-MM-DD HH:mm:ss').valueOf()
我一直这样做。
在节点上安装moment.js
,
npm install moment
并使用它
var moment = require('moment');
moment().valueOf();
答案 2 :(得分:4)
在打字稿中,只需运行Math.floor(new Date().getTime() / 1000)
> Math.floor(new Date().getTime() / 1000)
1581040613
我当前正在运行Node 13.7.0
答案 3 :(得分:0)
简化它的辅助方法,将以下内容复制/粘贴到您的JS上:
Date.prototype.toUnixTime = function() { return this.getTime()/1000|0 };
Date.time = function() { return new Date().toUnixTime(); }
现在,您可以通过简单的调用在任何地方使用它:
// Get the current unix time:
console.log(Date.time())
// Parse a date and get it as Unix time
console.log(new Date('Mon, 25 Dec 2010 13:30:00 GMT').toUnixTime())
演示:
Date.prototype.toUnixTime = function() { return this.getTime()/1000|0 };
Date.time = function() { return new Date().toUnixTime(); }
// Get the current unix time:
console.log("Current Time: " + Date.time())
// Parse a date and get it as Unix time
console.log("Custom Time (Mon, 25 Dec 2010 13:30:00 GMT): " + new Date('Mon, 25 Dec 2010 13:30:00 GMT').toUnixTime())
答案 4 :(得分:0)
AWS sdk包括用于转换亚马逊日期格式的实用程序功能。
例如,在从S3 get对象进行的回调中,有一个“ LastModified”属性,其格式为亚马逊日期格式。 (似乎他们除了为日期属性(例如S3对象“ LastModified”属性)导出标准Date类外什么也不做) 该格式包括一些用于各种内置格式的实用程序(不幸的是,对于unix epoch而言没有):
let awsTime = response.LastModified
console.log("Time Formats",{
"String" : awsTime.toString(),
"JSON" : awsTime.toJSON(),
"UTCString" : awsTime.toUTCString(),
"TimeString" : awsTime.toTimeString(),
"DateString" : awsTime.toDateString(),
"ISOString" : awsTime.toISOString(),
"LocaleTimeString" : awsTime.toLocaleTimeString(),
"LocaleDateString" : awsTime.toLocaleDateString(),
"LocaleString" : awsTime.toLocaleString()
})
/*
Time Formats {
String: 'Fri Sep 27 2019 16:54:31 GMT-0400 (EDT)',
JSON: '2019-09-27T20:54:31.000Z',
UTCString: 'Fri, 27 Sep 2019 20:54:31 GMT',
TimeString: '16:54:31 GMT-0400 (EDT)',
DateString: 'Fri Sep 27 2019',
ISOString: '2019-09-27T20:54:31.000Z',
LocaleTimeString: '16:54:31',
LocaleDateString: '2019-9-27',
LocaleString: '2019-9-27 16:54:31'
}
*/
但是,AWS utils函数包含一个“ date”模块以及其他函数,其中包括unixTimestamp方法:
let awsTime = response.LastModified
let unixEpoch = Math.floor(AWS.util.date.unixTimestamp(awsTime))
注意:默认情况下,此方法返回浮点值。因此Math.floor()
aws-sdk.js的功能代码(最新):
/**
* @return [Integer] the UNIX timestamp value for the current time
*/
unixTimestamp: function unixTimestamp(date) {
if (date === undefined) { date = util.date.getDate(); }
return date.getTime() / 1000;
}
还有用于rfc822和iso8601的方法
答案 5 :(得分:0)
发布ECMAScript5后,您可以使用:
Math.floor(Date.now() / 1000);
生成以秒为单位的纪元时间戳。
答案 6 :(得分:0)
使用momentjs:
以下两个变量具有相同的值:-
ul .topnav li a:hover {border-bottom: 2px solid #61a5c2;}
使用内置的 Date():
console.log(moment().format('X'))
console.log(moment.utc().format('X'))