我用逗号分隔包含日期的字符串,并希望以UTC格式转换它。
我写了这段代码:
daterange1.Select(t => t.Split(',').Select(r => r.Replace(r, TimeZoneInfo.ConvertTimeToUtc(DateTime.Parse(r), selectedTimeZone).ToString())));
但它只是转换第一个元素而不是所有元素。
有什么建议吗?
修改
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())));
每个逗号分隔的字符串都包含startdate和enddate。
答案 0 :(得分:5)
这样做 - 经过测试
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指出我的答案并不完全是答案。所以,这是另一个应该肯定回答的变体。它包含以逗号分隔的开始/结束和分号分隔的日期集
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));
答案 1 :(得分:1)
你可以这样做:
Select DISTINCT
Customer_No,
Name,
( SELECT MIN(REPLACE(Telephone_No, ' ', '') )
FROM #PSR_Telephone t2
WHERE t2.customer_No = t1.Customer_No
AND LEFT(Telephone_No,2) = '07'
) AS [Telephone_No_1] ,
( SELECT MAX(REPLACE(Telephone_No, ' ', ''))
FROM #PSR_Telephone t2
WHERE t2.customer_No = t1.Customer_No
AND LEFT(Telephone_No,2) = '07'
) AS [Telephone_No_2],
( SELECT MIN(REPLACE(Telephone_No, ' ', ''))
FROM #PSR_Telephone t2
WHERE t2.customer_No = t1.Customer_No
AND LEFT(Telephone_No,2) <> '07'
) AS [Telephone_No_3],
( SELECT MAX(REPLACE(Telephone_No, ' ', ''))
FROM #PSR_Telephone t2
WHERE t2.customer_No= t1.Customer_No
AND LEFT(Telephone_No,2) <> '07'
) AS [Telephone_No_4],
Primary_Addressable_Object,
Street_Name,
Postcode
from #PSR_Telephone t1
where Customer_No = '635532'
没什么特别之处,但如果需要你可以选择一个TimeZone(参见注释行)。我已经使用动态来让我更容易,但你可以创建一个类。