Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Azure功能中的时区和日光节约时间_C#_.net Core_Azure Functions - Fatal编程技术网

C# Azure功能中的时区和日光节约时间

C# Azure功能中的时区和日光节约时间,c#,.net-core,azure-functions,C#,.net Core,Azure Functions,我正在编写Azure函数I.NET Core 3.1,它将解析包含字符串的日志,并从字符串的子集生成DateTime对象。带有日期和时间的字符串的格式为yymmddhmmss,表示事件的时间戳。这意味着日期和时间是在CET或CEST中给出的。输入是我无法更改的旧的遗留格式,因此我们使用函数将其转换为更灵活的格式,以便进一步处理 我面临的挑战是读取此字符串并将其转换为UTC。如果不是夏令时,那也不会有问题。输入以CET或CEST给出,即UTC+1或UTC+2。因此,根据一年中的时间,我必须读取字符

我正在编写Azure函数I.NET Core 3.1,它将解析包含字符串的日志,并从字符串的子集生成DateTime对象。带有日期和时间的字符串的格式为
yymmddhmmss
,表示事件的时间戳。这意味着日期和时间是在CET或CEST中给出的。输入是我无法更改的旧的遗留格式,因此我们使用函数将其转换为更灵活的格式,以便进一步处理

我面临的挑战是读取此字符串并将其转换为UTC。如果不是夏令时,那也不会有问题。输入以CET或CEST给出,即UTC+1或UTC+2。因此,根据一年中的时间,我必须读取字符串并创建DateTime对象,使用CET或CEST作为本地时区,然后将其转换为UTC

在Azure函数中,我可以设置配置,使函数使用特定时区运行。但是,根据是冬季还是夏季,我在创建DateTime对象时必须使用不同的时区,并且必须在运行时这样做

例如:

应使用CEST作为本地时间解析字符串191027010203,并将其转换为UTC。 2019-10-27 01:02:03 CEST->2019-10-27 23:02:03 UTC

应使用CET作为本地时间解析字符串191027030203,并将其转换为UTC。 2019-10-27 03:02:03 CET->2019-10-27 02:02:03 UTC

应使用CET作为本地时间解析字符串190331015050,并将其转换为UTC。 2019-03-31 01:50:50 CET->2019-03-31 00:59:59 UTC

应使用CEST作为本地时间解析字符串190331030101,并将其转换为UTC。 2019-03-31 03:01:01 CEST->2019-03-31 01:01:01 UTC


有没有办法做到这一点?

方法
DateTime.Parse(String,IFormatProvider)
应该足够聪明,可以看到一年中的时间是什么,并进行相应的转换

除非要解析的字符串符合ISO 8601模式,否则解析方法的所有重载都是区域性敏感的

更多信息

额外参考: