【发布时间】:2018-08-08 03:55:12
【问题描述】:
我们有来自 CSV 文件的时间戳,如下所示:
06-02-2018 15:04:21
我们不控制它们的交付,也不控制时区。
到目前为止,我们所知道的是,到目前为止我们所看到的是:
标准浪漫时间 标准浪漫时间,但没有 DST 补偿。 世界标准时间
据此,我们了解到我们需要一个引擎,它可以采用任何时间戳(以 DateTime.ParseExact 理解的模式编写),属于任何时区,可选择忽略 DST,然后将其转换为 UTC(我们内部使用的格式)。
我希望这可以做到:
public DateTime ConvertToUtc(string fromTimestamp, DataReaderConfiguration dataReaderConfiguration)
{
DateTime readTime = DateTime.ParseExact(fromTimestamp, dataReaderConfiguration.TimestampFormat,
CultureInfo.InvariantCulture, DateTimeStyles.None);
DateTime utcTime = TimeZoneInfo.ConvertTimeToUtc(readTime,
TimeZoneInfo.FindSystemTimeZoneById(dataReaderConfiguration.TimeZone));
return utcTime;
}
但是 C# 没有定义没有 DST 的时区(UTC 除外)。
因此我们需要扩展该方法以允许在没有 DST 的情况下进行时区转换。
【问题讨论】: