Date conversion from dataset to JSON messages

Options
Ankur5289
Ankur5289 Partner, Dataiku DSS Core Designer, Dataiku DSS & SQL, Dataiku DSS Core Concepts, Registered Posts: 27 Partner

I have a dataset in dataiku that has date column in date format and in unix timestamp format.

For example the date is like 2020-06-16T13:08:05.205Z

And when i convert this dataset to individual json file format , this same date column gets transformed to some numerical format.

for example this same date gets transformed as below as shown in bolds.

[
{
"legalEntity":IND,
"docId":181cb33d4c0b97dfbef678ac47c255bd,
"user":BLUE YONDER,
"timestamp":1592312885205,

We want the timestamp to be in same format as in dataset. Can anyone please throw light on this and help us to resolve this ?

Answers

  • Ankur5289
    Ankur5289 Partner, Dataiku DSS Core Designer, Dataiku DSS & SQL, Dataiku DSS Core Concepts, Registered Posts: 27 Partner
    Options

    i now understand this value means number of mili seconds passed since 01 jan 1970. But what if we do not want this to be present in the json file? we want the same date to be displayed as per the data set.

  • VitaliyD
    VitaliyD Dataiker, Dataiku DSS Core Designer, Dataiku DSS Adv Designer Posts: 102 Dataiker
    edited July 17
    Options

    Hi @Ankur5289
    ,

    Assuming you are using pandas to convert the dataset to JSON, you can use mydataset_df.to_json(date_format = 'iso') to convert "epoch" to "iso" time. Please refer to the code sample and the screenshot below:

    mydataset = dataiku.Dataset("json_test")
    mydataset_df = mydataset.get_dataframe()
    
    #defauld "epoch time"
    input_json_epoch = mydataset_df.to_json()
    print("epoch formated: {}".format(input_json_epoch))
    
    #convert to "iso time"
    input_json_iso = mydataset_df.to_json(date_format = 'iso')
    print("iso formated: {}".format(input_json_iso))

    Screenshot 2021-06-22 at 23.34.32.png

    Hope this helps.

    Regards,

    Vitaliy

  • fostercarly
    fostercarly Registered Posts: 1 ✭✭✭
    Options

    JSON does not know anything about dates. What .NET does is a non-standard hack/extension. The problem with dates in JSON and really JavaScript in general – is that there's no equivalent literal representation for dates. In JavaScript following Date constructor straight away converts the milliseconds since 1970 to Date as follows:

    var jsonDate = new Date(1297246301973);

    Then let's convert it to js format:

    var date = new Date(parseInt(jsonDate.substr(6)));

    The substr() function takes out the /Date( part, and the parseInt() function gets the integer and ignores the )/ at the end. The resulting number is passed into the Date constructor .

Setup Info
    Tags
      Help me…