Como converter um valor de data no formato ISO 8601 em um objeto de data em JavaScript?

Eu tenho tentado converter um valor de data em um formato mais legível. Para fazer isso, estou tentando analisar a data usando o JavaScriptDate.parse() método. No entanto, isso não funciona na entrada (por exemplo:"2007-09-21T14:15:34.058-07:00") que eu tenho. O objetivo final é gerar uma sequência de datas como"January 30th, 2008 @ 2:15PM".

Alguma ideia?