UNIX в dd.MM.yyyy HH:mm:ss

material

Client
Регистрация
23.03.2021
Сообщения
329
Благодарностей
124
Баллы
43
Доброй ночи.
Стыдно задавать вопрос, но когда перечитал 30+ тем связанных с UNIX, начинаешь думать, что с тобой что-то не так...

Помогите кодом C# чтобы UNIX время перевести в формат dd.MM.yyyy HH:mm:ss

Например, нужно 1655002337 перевести в 12.06.2022 02:52:18

Единственное, что нашел более менее похожее под решение задачи находиться здесь, но там проблема в том, что вместо 12.06.2022 02:52:18, сниппет выводит 12.06.2022 2:52:18, то есть не 02 часа, а просто 2 часа, что не подходит под используемый формат.
 
Последнее редактирование:

djaga

Administrator
Команда форума
Регистрация
26.04.2020
Сообщения
554
Благодарностей
1 136
Баллы
93
Доброй ночи.
Стыдно задавать вопрос, но когда перечитал 30+ тем связанных с UNIX, начинаешь думать, что с тобой что-то не так...

Помогите кодом C# чтобы UNIX время перевести в формат dd.MM.yyyy HH:mm:ss

Например, нужно 1655002337 перевести в 12.06.2022 02:52:18

Едиснтвенное, что нашел более менее похожее под решение задачи находиться здесь, но там проблема в том, что вместо 12.06.2022 02:52:18, сниппет выводит 12.06.2022 2:52:18, то есть не 02 часа, а просто 2 часа, что не подходит под используемый формат.
Доброй ночи.)
Получить дату из unix в нужном формате:
long unixTime = Convert.ToInt64(project.Variables["unix"].Value);
DateTimeOffset dto = DateTimeOffset.FromUnixTimeSeconds(unixTime);
DateTime dt = dto.DateTime;

return dt.ToString("dd.MM.yyyy HH:mm:ss");
 
  • Спасибо
Реакции: Sergodjan и material

material

Client
Регистрация
23.03.2021
Сообщения
329
Благодарностей
124
Баллы
43
Собирал C# по всему форуму, на авторство не претендую. Просто хочу сделать пост, в котором будут перекрываться все действия с UNIX временем и любым форматом даты, на примере dd.MM.yyyy HH:mm:ss. Возможно кому-то такой пост пригодиться и поможет в работе.

Получение UNIX времени от 7make::
int unixTimestamp = (int)(DateTime.Now.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
return unixTimestamp;
Получем время в формате dd.MM.yyyy HH:mm:ss от sMax::
return DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss");
Конвертируем из UNIX в dd.MM.yyyy HH:mm:ss от djaga::
long unixTime = Convert.ToInt64(project.Variables["unix_date"].Value);
DateTimeOffset dto = DateTimeOffset.FromUnixTimeSeconds(unixTime);
DateTime dt = dto.DateTime;

return dt.ToString("dd.MM.yyyy HH:mm:ss");
Конвертируем из dd.MM.yyyy HH:mm:ss в UNIX от RoyalBank::
int unixTime = (int)(DateTime.ParseExact(project.Variables["date"].Value, "dd.MM.yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture) - new DateTime(1970, 1, 1)).TotalSeconds;
return unixTime;
Если нужен формат отличный от dd.MM.yyyy HH:mm:ss, то изменяйте его в C# и всё будет работать. Спасибо большое 7make, sMax, djaga и RoyalBank, если вам помогли их сниппеты также как и мне, найдите их посты на форуме и нажмите "Спасибо" под любым из них, уверен им будет приятно, что об их помощи помнят даже спустя время.
 
Последнее редактирование:

z@jivalo

Client
Регистрация
27.12.2016
Сообщения
800
Благодарностей
179
Баллы
43
сниппеты полезные, но вот с разница во времени есть на 3ч
облазил форум искать решение смены часового пояса не вышло :(


C#:
int unixTimestamp = (int)(DateTime.Now.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
return unixTimestamp;

через c# снипет - 1656879005 а тут разница в 3ч
через переменную unixtime - 1656868205 правильное время
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 567
Благодарностей
1 367
Баллы
113
сниппеты полезные, но вот с разница во времени есть на 3ч
облазил форум искать решение смены часового пояса не вышло :(


C#:
int unixTimestamp = (int)(DateTime.Now.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
return unixTimestamp;

через c# снипет - 1656879005 а тут разница в 3ч
через переменную unixtime - 1656868205 правильное время
C#:
//UtcNow - Установка часового пояса по умолчанию с +0 AddHours(3) - добавляем +3 к часовому поясу
int unixTimestamp = (int)(DateTime.UtcNow.AddHours(3).Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
return unixTimestamp;
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)