У меня есть данные для ввода времени, как показано ниже:

1536271200
1536184800
1536098400
1536012000
1535925600

Я сделал быстрый конвертер времени Unix:

public static DateTime Converter(double ts)
{
        DateTime org= new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);

        org = org.AddSeconds(ts);
        org = org.ToLocalTime();

        return org;
}

Но после преобразования он вернет мне дату, как показано ниже:

2018-09-10 00:00:00
2018-09-07 00:00:00
2018-09-06 00:00:00
2018-09-05 00:00:00
2018-09-04 00:00:00
2018-09-03 00:00:00

Как получить shortDateFormat (ГГГГ-ММ-ДД)?

1
4est 17 Сен 2018 в 15:30

2 ответа

Лучший ответ

Вы можете использовать .ToString(format), чтобы получить любой формат, который вам нужен, и в этом случае это будет .ToString("yyyy-MM-dd"):

public static string Converter(double ts)
{
        DateTime org= new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);

        org = org.AddSeconds(ts);
        org = org.ToLocalTime();

        return org.ToString("yyyy-MM-dd");
}

И, конечно, возвращаемый тип функции должен быть строковым.

1
Ashkan Mobayen Khiabani 17 Сен 2018 в 12:42

Вы запутались между объектом DateTime и «текстовой строкой, похожей на дату».

Ваш объект DateTime хранит момент времени, который соответствует дате. Вы можете превратить его в текстовую строку, которая выглядит как угодно, используя .ToString () и строку формата:

https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings

https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings

Или вы можете использовать один из предоставленных методов быстрого доступа для строк стандартного формата, например .ToShortDateString ()

https://docs.microsoft.com/en-us/dotnet/api/system.datetime?view=netframework-4.7.2

В конце концов, вам нужно понять, что вы жалуетесь: «У моей даты на конце указано время» -> в datetimes всегда есть компонент времени. В этом мире нет даты, вашего дня рождения, вашего выпускного дня, дня нового года и т. Д., С которым НЕ было бы связано время.

Все происходит одновременно, на свидании.

Когда вы сказали своей программе выводить эти даты на консоль, она включала время (всю полночь), потому что это то, что ваша система делает по умолчанию. Если вы хотите распечатать их без времени, укажите формат, который не включает заполнители времени. Мы выбираем то, что хотим видеть, в процессе подготовки данных для отображения.

0
Caius Jard 17 Сен 2018 в 12:39