I have comma separated string containing date and want to convert it in UTC.
I wrote this code:
daterange1.Select(t => t.Split(',').Select(r => r.Replace(r, TimeZoneInfo.ConvertTimeToUtc(DateTime.Parse(r), selectedTimeZone).ToString())));
but it just convert first element and not all the elements.
Any suggestions?
EDIT
daterange = "2016-02-15 17:30:00,2016-02-15 18:00:00;2016-02-16 17:30:00,2016-02-16 18:00:00";
var daterange1 = dateRange.Split(';');
daterange1.Select(t => t.Split(',').Select(r => r.Replace(r, TimeZoneInfo.ConvertTimeToUtc(DateTime.Parse(r), selectedTimeZone).ToString())));
each comma separated string contain startdate and enddate.
this will do it - tested
var dates = "2016-02-15 17:30:00,2016-02-15 18:00:00,2016-02-16 17:30:00,2016-02-16 18:00:00";
DateTime[] utcDates = dates.Split(',').Select(d => DateTime.Parse(d)).Select(dt => dt.ToUniversalTime()).ToArray();
foreach (var d in utcDates)
{
Console.WriteLine(d);
}
@mxmlc pointed out that my answer is not exactly the answer. so, here is another variation that should answer this for sure. It contains comma-separated start/end and semicolon separated date sets
var dates = "2016-02-15 17:30:00,2016-02-15 18:00:00;2016-02-16 17:30:00,2016-02-16 18:00:00";
// prepare results
// Legend: se = start/end; sed = stard-end date
var utcDates = dates.Split(';').
Select(se => se.Split(',')).
Select(se => new DateTime[]{
DateTime.Parse(se[0]).ToUniversalTime(),
DateTime.Parse(se[1]).ToUniversalTime()});
// print out results
utcDates.Select(sed => string.Format("Start Date: {0}; End Date: {1}", sed[0], sed[1])).
ToList().
ForEach(r => Console.WriteLine(r));
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments