Невозможно преобразовать мой DateTime в консольном приложении ac # в «метки времени в формате UNIX в миллисекундах с временем UTC» - PullRequest
0 голосов
/ 31 октября 2019

Я работаю над консольным приложением ac #, которое интегрируется с HubSpot API. и чтобы иметь возможность отправлять дату и время в API, мне нужно преобразовать его в «метки времени в формате UNIX в миллисекундах с временем UTC», как указано в их документации Как отформатировать метки времени для API-интерфейсов HubSpot? . поэтому я попробовал следующее: -

RootObject ro = new RootObject() { objectId = t.companyId };
ro.properties.Add(new Property { name = "latest_update_date", value = (((DateTimeOffset)(System.DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc))).ToUnixTimeMilliseconds()).ToString() });

, но мой запрос был отклонен из-за формата даты и времени The remote server returned an error: (400) Bad Request. наш хост-сервер - это Windows 2012, которая следует следующей зоне дат: - enter image description here

Вот пример результата, который я получу от преобразования DateTime 1572477823752

Вот WebClient, который я использую для интеграции с API, и который вызовет ошибку The remote server returned an error: (400) Bad Request, если я передаю значение даты: -

using (WebClient wc = new WebClient())
      {
        string url = "https://api.hubapi.com/companies/v1/batch-async/update?hapikey=*****";
        Uri uri = new Uri(url);
        wc.Encoding = System.Text.Encoding.UTF8;
        wc.Headers.Add(HttpRequestHeader.ContentType, "application/json");
        var apiupdateresults = wc.UploadString(uri, data);
        Console.WriteLine("Api update results= " + apiupdateresults);
      }
...