in reply to How do I find difference between two timestamps?

You could also skip all this 'figuring out what format that is, and passing it to something', and use a module that parses exactly what you have there, to wit: Time::ParseDate.
perl -MTime::ParseDate -le'print scalar localtime(parsedate("2004-11-1 +5T18:59:52.863Z"))'
Gives me:
Mon Nov 15 18:59:52 2004

Which looks good to me. So just run parsedate() on both, subtract the results, then all you'll need to do is convert the resulting number of seconds to something you understand ,)

C.