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.