дату из строки в UNIX

nik-n

Client
Регистрация
05.11.2016
Сообщения
242
Благодарностей
20
Баллы
18
помогите пожалуйста конвертировать в таймстамп
пару примеров:
2 июня 19:09
27 мая 08:31
 

THE CaHeK

Client
Регистрация
29.01.2016
Сообщения
295
Благодарностей
115
Баллы
43
C#:
string dd = "2 июня 19:09"; // из переменной  - string dd = project.Variables["dd"].Value;
DateTime dt = DateTime.Parse(dd);
long udts = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
//01.01.1970 00:00:00 по локальному времени
DateTime uepoch = new DateTime(1970,1,1);
//локальное значение unixtime
long dts = Convert.ToInt64((dt-uepoch).TotalSeconds);
return dts;
 

nik-n

Client
Регистрация
05.11.2016
Сообщения
242
Благодарностей
20
Баллы
18
C#:
string dd = "2 июня 19:09"; // из переменной  - string dd = project.Variables["dd"].Value;
DateTime dt = DateTime.Parse(dd);
long udts = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
//01.01.1970 00:00:00 по локальному времени
DateTime uepoch = new DateTime(1970,1,1);
//локальное значение unixtime
long dts = Convert.ToInt64((dt-uepoch).TotalSeconds);
return dts;
Ошибка: DateTime, представленный строкой, не поддерживается в календаре System.Globalization.GregorianCalendar.
 

THE CaHeK

Client
Регистрация
29.01.2016
Сообщения
295
Благодарностей
115
Баллы
43
Ошибка: DateTime, представленный строкой, не поддерживается в календаре System.Globalization.GregorianCalendar.
Тогда попробуйте вот так.

C#:
string dd = "2 июня 19:09"; // из переменной  - string dd = project.Variables["dd"].Value;

var culture = System.Globalization.CultureInfo.CreateSpecificCulture("ru-RU");
DateTime dt = DateTime.Parse(dd,culture);
long udts = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
//01.01.1970 00:00:00 по локальному времени
DateTime uepoch = new DateTime(1970,1,1);
//локальное значение unixtime
long dts = Convert.ToInt64((dt-uepoch).TotalSeconds);
return dts;
92765
 

nik-n

Client
Регистрация
05.11.2016
Сообщения
242
Благодарностей
20
Баллы
18
Тогда попробуйте вот так.

C#:
string dd = "2 июня 19:09"; // из переменной  - string dd = project.Variables["dd"].Value;

var culture = System.Globalization.CultureInfo.CreateSpecificCulture("ru-RU");
DateTime dt = DateTime.Parse(dd,culture);
long udts = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
//01.01.1970 00:00:00 по локальному времени
DateTime uepoch = new DateTime(1970,1,1);
//локальное значение unixtime
long dts = Convert.ToInt64((dt-uepoch).TotalSeconds);
return dts;
Посмотреть вложение 92765
та же самая ошибка, я уже сам тоже ищу решения - затрахался.
думаю уже просто Replace'ом менять текст на число (месяц) и год дописывать текущий
 

nik-n

Client
Регистрация
05.11.2016
Сообщения
242
Благодарностей
20
Баллы
18
Стоп, с 2 июня 19:09 - работает
а вот если 28 мая 11:07 - то не работает
 

nik-n

Client
Регистрация
05.11.2016
Сообщения
242
Благодарностей
20
Баллы
18
короче сделал пока так на сколько ума хватило )
C#:
string dd = project.Variables["startDate"].Value;
string year = DateTime.Now.Year.ToString();
string[] month = {"","января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"};

for (int i = 1; i < 13; i++){
    dd = dd.Replace(month[i],i.ToString()+" "+year);
}

DateTime dt = DateTime.Parse(dd);
работает
 
  • Спасибо
Реакции: THE CaHeK

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