Wpis z mikrobloga

Z JsonObject& wyciągam do String timestamp. Jak z tego wyciągnąć godzinę i minuty?

String getEndTimeText(JsonObject& response) {
String handTimestamp = response["properties"]["handTimestamp"];
// TODO fajny string w formacie HH:mm
}

#programowanie #arduino #esp8266
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

String handTimestamp = response["properties"]["handTimestamp"];
int numer = atoi(handTimestamp);

rzuca błędem:

invalid conversion from 'ArduinoJson::Internals::JsonVariantAs::type {aka const char*}' to 'char*'
Z 10 lat niczego nie pisałem w C :D Teraz wiem co czują nowi pracownicy :P
  • Odpowiedz
atoi(handTimestamp)


@lecter69:

Tutaj C++ nie kuleje tylko umiejętność czytania ze zrozumieniem.

Nie wiem po co ci oddzielnie godziny i minuty ale możesz sobie string podzielić wg. dwukropka i dostajesz oddzielnie godziny i minuty jako stringi a potem przeparsować na inty.
  • Odpowiedz
Ta, ale handTimestamp nie zawiera ładnie sformatowanej godziny z dwukropkiem, którą bym mógł sobie wyciągnąć tylko timestampa, int/ long/ czy cokolwiek innego co tam C ma.
  • Odpowiedz
@lecter69: String jest klasą z biblioteki arduino (chyba że używasz innego stringa?), atoi na nim nie zadziała, chyba że weźmiesz z niego char*
czyli atoi(handTimestamp.c_str())
Znacznie lepiej skorzystać jest jednak z dedykowanej funkcji przeznaczonej do konwersji stringa na inta, czyli
handTimestamp.toInt()
  • Odpowiedz