1

关键字:DataTable、DateTime、BluePrism
情况:将数据从 excel 文件读取到数据表中,日期时间偏移。
示例:我有一个简单的 excel 文件,其中包含下表:

ID | Date
1    03-07-2015
2    07-05-1998
3    11-11-1987

使用此方法将excel 文件读入 c# DataTable后( Read xls file to Import to DataTable),我得到下表:

ID | Date
1    2/7/2015 9:00:00 PM
2    6/5/1998 9:00:00 PM
3    10/11/1987 10:00:00 PM

我试过的:

  1. 以不同方式读取 excel 文件(不走运);
  2. 找出 DataTable.Locale。当我在我的 c# 控制台上运行它时,语言环境是我计算机的语言环境 - da-DK。但是,当我在 Blue Prism 的代码阶段运行相同的函数时,语言环境更改为en-US。我尝试在 BluePrism 中将其更改为da-DK,但日期时间解析不受影响。

当我只使用 c# 导入 excel 时,它工作正常。但是,当我在 Blue Prism 上运行完全相同的代码时,情况并非如此。我知道当字符串被转换为日期时间时,它被设置为date 00:00:00 <PM|AM>. 为什么减法发生的过程超出了我的范围。

4

2 回答 2

1

我假设您在本地时间设置为 UTC +3 的计算机上运行 Blue Prism 对象。Blue Prism 始终将通过各种渠道检索到的日期时间变量转换为 UTC 值;因此它从原始条目中减去 3 小时。这些渠道可能是 MS Excel、SQL 查询、文本文件等。

如果您将日期时间变量存储在文件中,使用它将其存储回来并再次调用它,就会变得特别成问题。然后 Blue Prism 将执行连续减法。处理此问题的最佳方法是在您检索它们时将LocalTime() - UTCTime()添加到每个日期时间项。

于 2018-06-06T18:12:00.400 回答
0

我有同样的问题,但它是使用 CStr 函数解决的,它保留了 excel 文件中的原始值。

例子:

Select CStr([Start Pay period]) as [Start Pay Period] From [Worksheet$]
于 2020-01-30T09:50:17.930 回答