Как отформатировать дату Json при публикации на URL? - PullRequest
0 голосов
/ 22 мая 2018

Я получил этот JSON в VB6 (не .NET) внутри текстового поля:

[{"id":123,"key":"h73df", "birth_date":"20180101"}]

Он не возвращает ошибку при публикации в URL-адрес ... но дата не вставлена, и я не знаюпочему.

Я уже пробую разные форматы, такие как:

"2018.01.01"
["20180101"]
2018.01.01

, но не будет работать.Я думаю, что должен использовать что-то вроде cdate(), но затем я поместил всю строку JSON в текстовое поле, и все стало простой строкой ... и не работает.

1 Ответ

0 голосов
/ 08 июня 2018

Самому JSON все равно, какой формат вы используете для даты.Тем не менее, он наиболее часто используется в формате JavaScript, который является ISO 8601 формат.

При этом вы можете создать строку в этом формате, используя следующий код VB6время в UTC, если вы хотите использовать местное время, вам нужно будет позвонить GetLocalTime API вместо GetSystemTime):

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Put inside module:
Private Type SYSTEMTIME '16 Bytes
  wYear         As Integer
  wMonth        As Integer
  wDayOfWeek    As Integer
  wDay          As Integer
  wHour         As Integer
  wMinute       As Integer
  wSecond       As Integer
  wMilliseconds As Integer
End Type

Private Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Function GetJsonDateTime() As String    
    Dim NowTime As SYSTEMTIME
    Dim sYear, sMonth, sDayOfWeek, sDay, sHour, sMinute, sSecond, sMilliseconds As String
    Dim JsonDateTime As String

    GetSystemTime NowTime

    sYear = Format(NowTime.wYear, "0000")
    sMonth = Format(NowTime.wMonth, "00")
    sDay = Format(NowTime.wDay, "00")
    sHour = Format(NowTime.wHour, "00")          'wHour - or + X depends local timezone
    sMinute = Format(NowTime.wMinute, "00")
    sSecond = Format(NowTime.wSecond, "00")
    sMilliseconds = Format(NowTime.wMilliseconds, "000")

    JsonDateTime = sYear & "-" & sMonth & "-" & sDay & "T" & sHour & ":" & sMinute & ":" & sSecond & "." & sMilliseconds & "Z"

    GetJsonDateTime = JsonDateTime
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...