Получить shortTimeDate из формата Unix (C #) - PullRequest
0 голосов
/ 17 сентября 2018

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

1536271200
1536184800
1536098400
1536012000
1535925600

Я сделал быстрый Unix TimeConverter:

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 (ГГГГ-ММ-ДД)?

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Вы можете использовать .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");
}

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

0 голосов
/ 17 сентября 2018

Вы запутались между объектом 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

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

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

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

...