As a German native speaker, I would suggest using the full form ("10:00 am") when possible, though the short form should suffice. When no "am" is present, Germans may assume the time is given in 24h form. Germans who are aware of the am/pm distinction in English may be confused when it is missing.
As for the colon vs decimal, I've encountered both forms in German and though I personally prefer the colon, some style guides may disagree (I would have to check the Duden).
So to answer your question: avoid "10 o'clock" as it may be considered ambiguous. As a rule of thumb: if it's before noon, use the "am" form; if it's after noon, use the 24h form or use the "pm" form with the 24h form in parentheses like so:
arrrive at 10 pm (22:00 h)
Alternatively, qualify the time (e.g. "at 10 in the morning") like emragins suggested.
In any case, the American "military time" form ("2200 hrs") will sound odd to most Germans. If there is no separator between the hour and minute in German, it's usually due to laziness, not style.