【问题标题】:Power shell Script to update CSV file date time fields from UTC to local time用于将 CSV 文件日期时间字段从 UTC 更新为本地时间的 Power shell 脚本
【发布时间】:2018-10-24 06:10:38
【问题描述】:

我们会自动将 Salesforce 数据导出到特定文件夹中的 CSV 文件中(每天晚上 10 点)。

在每个 CSV 文件中有两个日期时间列,它们采用 UTC 时间格式 [2018-01-30T05:27:26.000Z]

我的要求是创建一个脚本来读取这些 CSV 文件并将日期时间列更新为本地时区和格式 (dd/mm/yyyy hh:mm:ss)。

我需要安排这个脚本每天运行(每天晚上 10.30)。 (我们知道文件夹路径、文件名、列名)。

请帮助编写脚本示例。 谢谢

【问题讨论】:

  • Stackoverflow 不是脚本编写社区。 Stackoverflow 的目标是帮助人们改进或纠正他们已经尝试过的错误。话虽如此,您是否尝试过将该字段转换为日期时间?通过将 [datetime] 放在它的开头。 [datetime]"2018-01-30T05:27:26.000Z" 生成本地时间而不是 UTC 时间。也许你可以从那里开始。
  • @Kiran - 将这些字段更改为向后的欧盟日期格式......不是一个好主意。如果使用它的人无法处理一致、理智、可靠的日期格式...那么您可能希望为他们的 [不幸的是脑残]使用。 [grin] ///// 认真地,尽量避免引入纯本地的日期格式。 ///// 如果您需要本地时间,请使用内置的 [datetime] 方法来执行此操作...但尝试保留逻辑、可靠、非疯狂的 yyyy-MM-dd 布局。

标签: powershell timezone salesforce


【解决方案1】:

罗伯特·科特曼所说的同上。

不过,对于这口井,可以认为是本次讨论的重复。

Convert list of UTC to Current TimeZone

$UTCTime = GC "C:\Scripts\UTC.txt"
$results = '' | Select UTCTime,PST
Foreach ($newtime in $UTCTime){
$strCurrentTimeZone = (Get-WmiObject win32_timezone).StandardName
$TZ = [System.TimeZoneInfo]::FindSystemTimeZoneById($strCurrentTimeZone)
$LocalTime = [System.TimeZoneInfo]::ConvertTimeFromUtc($newtime, $TZ)
$results.UTCTime = $newtime
$results.PST = $LocalTime
 $results
}

此答案将帮助您入门,最后一部分只是将脚本与计划任务一起使用。

【讨论】:

    猜你喜欢
    • 2012-10-07
    • 1970-01-01
    • 2011-06-13
    • 2019-03-30
    • 1970-01-01
    • 2016-07-29
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多