Дата отображения API cmartsheet API

Я написал программу на C#, которая извлекает данные из SmartSheet, а затем вставляет данные в базу данных SQL. Все работает отлично, кроме дат. Я искал этот сайт, а также другие о том, как получить информацию о дате в формате, который может быть загружен в базу данных SQL. У меня есть нерешенный вопрос к группе API на SmartSheet. Контактное лицо в SmartSheet призналось, что у него не было документации о том, как выполнять эту функцию. Существует документация о том, как форматировать данные для вставки в лист, но не о том, как форматировать данные при извлечении формата даты из Smartsheet. Кто-нибудь может помочь? Благодарю.

3 ответа

Вы уже читали раздел " Даты и время" документации по API Smartsheet? Вот соответствующая выдержка:

API Smartsheet возвращает все даты и время в часовом поясе UTC в формате ISO-8601, то есть YYYY-MM-DDTHH:MM:SSZ

Также есть параметр запроса (numericDates=true) вы можете передать свой запрос, если хотите получить дату в Unix Epoch Time.

Есть ли причина, по которой вы не хотите хранить дату ISO-8601 в своей базе данных SQL? Этот формат содержит всю информацию, которая может вам понадобиться в будущем. Вы также можете применить любую логику форматирования даты, которую вы хотите, до или после сохранения даты.

Я новичок в C# и.net, поэтому я предположил, что это был только я. Но вот ответ.

statusCellTask = getCellByColumnName(row, "Start");
 var varStart = statusCellTask.Value;
 if (varStart is null
{ command.Parameters.AddWithValue("@sqlStart", ""); }
else
{
string Start = varStart.ToString();
command.Parameters.AddWithValue("@sqlStart", Start);
}

Я надеюсь, что это поможет кому-то, с чем я боролся.

Тейлор ответ правильный. Вы можете передать numericDates параметр запроса, чтобы получить числовое значение эпохи. Тем не менее, если вы предпочитаете использовать строку ISO-8601, есть C# способы конвертировать это в другие форматы. Затем вы можете преобразовать его в любые требования, предъявляемые к вашей базе данных SQL.

var convertedTime = DateTime.ParseExact(cellDateValueString, "YYYY-MM-DDTHH:MM:SSZ", CultureInfo.InvariantCulture);
Другие вопросы по тегам