2017-07-14 196 views
1

Valid JSON data types不包括日期。那麼爲什麼SAP增加' - '?ABAP JSON Writer使用不正確的日期和時間輸出?

data: 
     lo_writer type ref to cl_sxml_string_writer, 
     lo_xmldoc type ref to if_ixml_document, 
     lv_xml type string, 
     l_xstring type xstring, 
     l_descr_ref type ref to cl_abap_typedescr. 

    lo_writer = cl_sxml_string_writer=>create(type = if_sxml=>co_xt_json 
              no_empty_elements = ''). 

    call transformation id source JSON_ROOT_NODE = SY-DATUM 
         result xml lo_writer. 

    l_xstring = lo_writer->get_output(). 

    r_json = /AXO/MC_Tools=>xstring2string( i_xstring  = l_xstring 
              i_encoding = 'UTF-8' ). 

結果 「YYYY-MM-DD」 而不是 「年月日」

爲什麼? 我該如何解決這個問題?

回答

3

你說得對,JSON沒有定義數據類型。 SAP選擇將日期表示爲字符串,這是一個完全有效的選擇,並且至少部分符合ISO 8601 approach favored by other implementations。除了接收應用程序之外,我不認爲這裏有任何「修復」。

+0

鑑於Javascript的確如此,許多人使用8601,那麼你可能會認爲SAP已經做到了正確。非常地,我不能改變期待YYYYMMDD的消費者。 https://www.w3.org/TR/NOTE-datetime –