2.1.105 [ECMA-262-1999] Section, Date.prototype.toString ()


This function returns a string value. The contents of the string are implementation-dependent, but are intended to represent the Date in the current time zone in a convenient, human-readable form.

The string is determined as follows:

  1. Let tv be this time value.

  2. If tv is NaN, return the string "NaN".

  3. Let t be LocalTime(tv).

  4. Using t, create a string value with the following format, based upon the format description below. The format is: DDDbMMMbddbhh:mm:ssbzzzzzzbyyyyy

  5. Return Result(4).

The format is defined as follows:

Date part



The day of the week abbreviation from the set: Sun Mon Tue Wed Thu Fri Sat


A single space character


The month name abbreviation from the set: Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec


The day of the month as one or two decimal digits, from 1 to 31.


The number of complete hours since midnight as two decimal digits.


The colon character.


The number of complete minutes since the start of the hour as two decimal digits.


The number of complete seconds since the start of the minute as two decimal digits.


If the local time offset from UTC is an integral number of hours between -8 and -5 inclusive, this is the standard abbreviation for the corresponding North American time zone which is one of: EST EDT CST CDT MST MDT PST PDT. Otherwise this is the characters UTC followed by a + or - character corresponding to the sign of the local offset from UTC followed by the two decimal digit hours part of the UTC offset and the two decimal digit minutes part of the UTC offset.


If YearFromTime(t) is > then this is 3 or more digits that is the value of YearFromTime(t). Otherwise, this is the one or more decimal digits corresponding to the number that is 1 - YearFromTime(t) followed by a single space character followed by the characters B.C.



__For any Date value d with a milliseconds amount of zero, the result of Date.parse(d.toString()) is equal to d.valueOf(). See [ECMA-262-1999] section It is intended that for any Date value d, the result of Date.prototype.parse(d.toString())( is equal to d.#

The above change corrects a specification error that is documented in the ES3 errata. JScript 5.x implements the correction.