1) The ":" symbolizes the beginning of the initializer list. Everything in the initializer list calls the constructor of what you put there. There it is mandatory, for example, if you have a base class with a constructor that takes one argument. You'll have to use the initializer list to call the correct constructor with the correct argument.
2) That's why I said probably make the constructor get the default time.
3) There are two issues:
3a) It's invalid syntax - you can't call a constructor after the object is constructed. You can only assign. Again, this leads to unnecessary waste of resources.
3b) It's typically undefined behavior to call a member function of a class before it's constructed, so it's very bad.
4) Since getCurrentTime does not rely on the object it's a member of (it only gets the current system time and not the current time embedded in the object), it's better to make it static as mats suggests. That way you can call it without having to worry about constructing the object first.

