I ended up solving this problem by changing the format of the string as it was sent to Javascript. Instead of 2012-12-09T02:08:34.6225152Z I changed the JSON serializer to output 1363607010099 by using the following code:
var serializer = new JsonNetSerializer(new JsonSerializerSettings
{
DateFormatHandling = DateFormatHandling.MicrosoftDateFormat,
NullValueHandling = NullValueHandling.Ignore
});
I then changed my javascript to parse the date using this function that I found:
String.prototype.toDate = function () {
"use strict";
var match = /\/Date\((\d{13})\)\//.exec(this);
return match === null ? null : new Date(parseInt(match[1], 10));
};
Finally, I output the date using this bit of code (taking advantage of the DateJS library):
myTime.toDate().toString('h:mm:ss tt dd-MMM-yyyy')
And it works. This seems a bit hackish, so I'm more than open to consider alternatives.