Date API: Proper method of parsing dates
How can I use the Date API to obtain DateObject from the event date
  stored on the node?


Offhand, I'm not 100% sure the right way to do this. It sounds like you want to use the DateObject to perform some calculations -- not just to run through a theme field_formatter. This date issue thread has some code kinda trying to use date fields and their values, but doesnt help much.

Simply because I can understand it (and have used this module myself) I recommend trying out the sub-module of Date, date_api, and an additional 3rd party module: field_extract.

With field extract you can easily (and correctly) access a fields value for instance as a timestamp:

  // Extract from a date, this extracts the first value and provides a
  // formatted date output, uses the specified format, by name.
  $event_timestamp = field_extract_value('node', $node, 'field_event_time', 0, array('format' =&gt; 'timestamp'));


You can then use the DateAPI to create a DateObject:

$date = new DateObject($event_timestamp);



  How can I determine whether the stored event is an
  all day event?


Use the date_is_all_day() function found in the date_api module, it compares 2 date fields to check if they encompass a full day.

 function date_is_all_day($string1, $string2, $granularity = 'second', $increment = 1) { ... }