0

I'm trying to call a Webservice with a DateTime format like this : "\/Date(x)\/" where x is the millisecond value since 1970.

How can I generate a DateTime in this format?

Here is what i've done :

dateValidation_long = dateValidation_string.getTime();
String a = '\\/Date(';
String b = ')\\/';
modifierEntiteDeFacturation3C_request.dateValidation = a + dateValidation_long + b;

Here is the result in my console :

\/Date(1505904139000)\/

Then, i'm trying to JSON.serialize this date, to send it via a Webservice, and this is the result :

dateValidation":"\\/Date(1505904534000)\\/"

The webservice response is not OK because the format is different as expected :

DateTime content '\/Date(1505904139000)\/' does not start with '\/Date(' and end with ')\/' as required for JSON.
5
  • We need more information : what error do you get ? which pattern is the right one : "/Date(x)/" OR "\/Date(x)\/" ? Commented Sep 20, 2017 at 9:03
  • if i'm not escaping this is my error : Illegal string literal: Invalid string literal '\/Date('. Illegal character sequence \/' in string literal.
    – FabienHuot
    Commented Sep 20, 2017 at 9:06
  • Putting a backslash as an expected pattern whereas it has an escaping behavior in several technologies/languages/whatever........... Backslash has 92 as ASCII code character, try concatenating it without escaping the backslash when you declare String a and b Commented Sep 20, 2017 at 9:59
  • @Answers_Seeker I agree with you with this horrible pattern... Even the DateTime format in millisecond for a date... #nocomment But, finally, I found a "crappy" workaround : envelop = envelop.replace('\\\\', '\\'); (After the JSON.Serialize)
    – FabienHuot
    Commented Sep 20, 2017 at 12:29
  • could you post an answer with your workaround, this could help other users facing similar issues in the future. thanks!
    – glls
    Commented Oct 23, 2017 at 17:30

1 Answer 1

0

To make my code working, here is what i've done :

String envelop     = JSON.serialize(modifierEntiteDeFacturation3C_request);
envelop = envelop.replace('\\\\', '\\');

Before : dateValidation":"\\/Date(1505904534000)\\/"

After dateValidation":"\/Date(1505904534000)\/"

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .