Arduino:如何用毫秒将历元转换为历元

Arduino:如何用毫秒将历元转换为历元,arduino,epoch,Arduino,Epoch,我目前正在通过HTTP从外部源下载JSON。工作没有任何问题。然后我用ArduinoJson解析它 String payload = https.getString(); const size_t capacity = JSON_ARRAY_SIZE(1) + JSON_OBJECT_SIZE(9) + 210; DynamicJsonDocument jsonDoc(capacity); deserializeJson(jsonDoc, payload); JSON中包含一个很大的数字:

我目前正在通过HTTP从外部源下载JSON。工作没有任何问题。然后我用ArduinoJson解析它

String payload = https.getString();
const size_t capacity = JSON_ARRAY_SIZE(1) + JSON_OBJECT_SIZE(9) + 210;
DynamicJsonDocument jsonDoc(capacity);
deserializeJson(jsonDoc, payload);

JSON中包含一个很大的数字:

[{"date":1579459067000,"dateString":"2020-01-19T18:37:47Z"}]
因为我需要不带millis的unixtimestamp?我试过用long和double,但是它太大了。 如何将这个大数字1579459067000转换为1579459067,还是应该解析日期字符串

最后,我需要的数字,只要它长


提前谢谢

要使用ArduinoJson处理64位整数,必须使用

#define ARDUINOJSON_USE_LONG_LONG 1 // we need to store long long
#include <ArduinoJson.h>
\define ARDUINOJSON\u USE\u LONG\u LONG 1//我们需要存储LONG LONG
#include,我在Uno和esp8266上测试了ArduinoJson版本6。它起作用了

#define ARDUINOJSON_USE_LONG_LONG 1 // we need to store long long
#include <ArduinoJson.h>

const char* json = "{\"date\":1579459067000,\"dateString\":\"2020-01-19T18:37:47Z\"}";

void setup() {
  Serial.begin(115200);

  StaticJsonDocument<200> doc;

  deserializeJson(doc, json);

  uint64_t t = doc["date"];

  Serial.println((unsigned long) (t / 1000));

}

void loop() {

}
\define ARDUINOJSON\u USE\u LONG\u LONG 1//我们需要存储LONG LONG
#包括
const char*json=“{\'date\':1579459067000,\'dateString\':\'2020-01-19T18:37:47Z\'”;
无效设置(){
序列号开始(115200);
静态文件;
反序列化json(doc,json);
uint64_t=单据[“日期”];
序列号println((无符号长)(t/1000));
}
void循环(){
}

try
uint64\u t
type当我用
{“日期”:157946666000}
尝试时,我得到了
Serial.println(PriUint64(日期)):1579462034041?!两者相差631959‬ ???“PriUint64(date)”中的日期是什么?@Juraj
uint64\u t date=jsonDoc[0][“date”]