在Photon上格式化和显示时间

时间:2015-12-29 18:00:14

标签: c++

我试图在连接到我的粒子光子的OLED板上显示当前时间。

void loop() {
  time_t time = Time.now();
  Time.format(time, '%Y-%m-%dT%H:%M:%S%z');
  displayString(time);
}

int displayString(String text) {
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0,0);
  display.println(text);
  display.display();

  return 1;
}

我已确认displayString有效。由于它是一个嵌入式设备,您无法访问常规时间库,但Photon拥有自己的时间库。

https://docs.particle.io/reference/firmware/core/#time

我收到错误Invalid conversion from int to const char*

编辑:对于遇到此问题的其他人,我发现虽然没有记录,但如果您没有提供时间,则会使用当前时间,因此您可以这样做:

String time = Time.format("%d/%m/%y %H:%M:%S");

大写String类型是有意的,请参阅String class

1 个答案:

答案 0 :(得分:1)

这可能是因为在这一行:

Time.format(time, '%Y-%m-%dT%H:%M:%S%z');

您将格式字符串指定为multi-character char,而不是string。尝试:

Time.format(time, "%Y-%m-%dT%H:%M:%S%z"); // Note the double quotation marks

有关多字符字符的更多信息,请参阅此处:What do single quotes do in C++ when used on multiple characters?

还要注意你的编译器警告,你应该收到这个:

  

警告:多字符字符常量

哪会提醒您这个问题。