Extracting ints from a string on Arduino
FYI, a question about parsing strings is more suitable for Stack Overflow.  But I'll try anyways.

It is unclear to me where the time starts in that string, is it 1819CET? Where 18 is the hour in 24-hour clock format and 19 is minutes?  Why is there a 3 after the date?  I will assume 1819CET is the time here in HHMM{TIMEZONE} format since you've indicated that the starting index is 19 in your code, since 18 would've landed on the 3 in the string.

I am unfamiliar with the arduino library, so I will read their documentation first.  Doing so reveals the following. An excerpt from here: http://arduino.cc/en/Reference/StringSubstring


  Get a substring of a String. The starting index is inclusive (the
  corresponding character is included in the substring), but the
  optional ending index is exclusive (the corresponding character is not
  included in the substring). If the ending index is omitted, the
  substring continues to the end of the String.


This:

time.substring(19,20)


Will not include index 20.  It will only return a string of 1 character.

To be safe, try these sizes for your char arrays: char h_str[3]; and char m_str[3];

And try calling like this:

char h_str[3];
char m_str[3];
time.substring(19,21).toCharArray(h_str, sizeof(h_str));
time.substring(21,24).toCharArray(m_str, sizeof(m_str));


I'm using sizeof() here because toCharArray() asks for the size of the buffer being passed in as specified here.