Powershell从Excel列导入的日期和时间以错误的格式导入

问题描述

我正在使用Import-Excel模块将Excel文档导入到Powershell脚本中。 导入效果很好,但是带有日期的列的格式确实很奇怪。 Excel工作表中的日期和时间的格式如下:yyyy-mm-dd hh:mm(2020-09-01 04:03),但是导入的数据看起来像这样:43965,1672916667。

我试图将[DateTime]添加到这样的变量中: "Senast ansluten" = [DateTime]$ExcelLok.'Senast ansluten' 但后来我得到错误 Cannot convert value "44075.3451851852" to type "System.DateTime". Error: "String was not recognized as a valid DateTime."

如何指定格式以便正确读取?

$ImportExcel = Import-Excel -Path 'C:\Temp\Powershell scripts\Test\PingFastaIP\Fasta IP-nummer.xlsm' -WorksheetName ADM_UTB

ForEach ($ExcelLok in $ImportExcel){
[PSCustomObject]@{
        "IP address" = $ExcelLok.IP
        "Lokation" = $ExcelLok.Lok
        "Ping status" = $ExcelLok.'Ping status'
        "Senast ansluten" = [DateTime]$ExcelLok.'Senast ansluten'
} | Format-Table -Property `
        @{Name='Lokation';Expression={ $ExcelLok.Lok };align='left';width=15},@{Name='IP address';Expression={ $ExcelLok.IP };align='left';width=15},@{Name='Ping status';Expression={ $ExcelLok.'Ping status' };align='left';width=20},@{Name='Senast ansluten';Expression={ $ExcelLok.'Senast ansluten' }} 
        
}

解决方法

感谢麦克莱顿,解决方案变成了这样:

$ImportExcel = Import-Excel -Path 'C:\Temp\Powershell scripts\Test\PingFastaIP\Fasta IP-nummer.xlsm' -WorksheetName ADM_UTB

ForEach ($ExcelLok in $ImportExcel){
[PSCustomObject]@{
        "IP address" = $ExcelLok.IP
        "Lokation" = $ExcelLok.Lok
        "Ping status" = $ExcelLok.'Ping status'
        "Senast ansluten" = [DateTime]::FromOADate($ExcelLok.'Senast ansluten')
} | Format-Table -Property `
        @{Name='Lokation';Expression={ $ExcelLok.Lok };align='left';width=15},@{Name='IP address';Expression={ $ExcelLok.IP };align='left';width=15},@{Name='Ping status';Expression={ $ExcelLok.'Ping status' };align='left';width=20},@{Name='Senast ansluten';Expression={ [DateTime]::FromOADate($ExcelLok.'Senast ansluten') }} 
        
}
,

试试这个: $ImportExcel = Import-Excel -Path 'C:\Temp\Powershell scripts\Test\PingFastaIP\Fasta IP-nummer.xlsm' -WorksheetName ADM_UTB -AsDate 'DateColumn'

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...