Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-1600] Android: JSON.stringify incorrectly handles dates including silently faiing

GitHub Issuen/a
TypeBug
PriorityMedium
StatusClosed
ResolutionFixed
Resolution Date2011-04-17T01:56:38.000+0000
Affected Version/sn/a
Fix Version/sRelease 1.5.0 M02
ComponentsAndroid
Labelsandroid, date, defect, json.stringify
Reporterlukaso
AssigneeDon Thorp
Created2011-04-15T02:57:04.000+0000
Updated2011-04-17T01:56:38.000+0000

Description

Here is the output of JSON.stringify on a number of different platforms, including Android. As you can see, the Android version handles both a date directly incorrectly, and embedded in an object incorrectly, but differently.

This bug makes it very difficult to send date information to servers or store it in local state.

Firefox:
JSON.stringify(new Date()) => "2010-08-19T09:12:00.027Z" JSON.stringify({time: new Date()}) => {"time":"2010-08-19T09:13:30.025Z"}

Chrome:
JSON.stringify(new Date()) => "2010-08-19T09:14:16.527Z" JSON.stringify({time: new Date()}) => {"time":"2010-08-19T09:14:55.028Z"}

Titanium iPhone:
JSON.stringify(new Date()) => "2010-08-19T09:21:22.528Z" JSON.stringify({time: new Date()}) => {"time":"2010-08-19T09:21:22.528Z"}

Titanium Android:
JSON.stringify(new Date()) => "Thu Aug 19 10:19:00 Europe/London 2010" JSON.stringify({time: new Date()}) => {}

Comments

  1. Marshall Culpepper 2011-04-15

    (from [c680f8c261118315c9160a96ce05bcbc08eda14f]) compensate for JS timezone offsets in date conversion (Java Dates are GMT), use the same JSON format used by browsers for JSON stringifying Dates. added a test for dates and JSON [#1600 state:fixed-in-qa milestone:"Release 1.5.0 M02"] https://github.com/appcelerator/titanium_mobile/commit/c680f8c261118315c9160a96ce05bcbc08eda14f"> https://github.com/appcelerator/titanium_mobile/commit/c680f8c26111...

  2. Matt Schmulen 2011-04-15

    Passed Android Version 1.6 Sim, Titanium SDK version: 1.5.0 (11/24/10 12:05 c0aff27)
    Passed Android Versions 2.1 Sim, Titanium SDK version: 1.5.0 (11/24/10 12:05 c0aff27)

JSON Source