我可以使用此PowerShell命令获取存储表行:
$temp_table_name = "MY_TABLE_NAME"
$saContext = (Get-AzureRmStorageAccount -ResourceGroupName $resourceGroup -Name $storageAccount).Context
$temp_table = Get-AzureStorageTable -Name $temp_table_name -Context $saContext
$result = Get-AzureStorageTableRowAll -table $temp_table
我的表中有两个Timestamp,一个用于名称为Timestamp
的azure表,另一个用于名称为TIMESTAMP
的Metrics(自动存储)。然后$result[0]
的结果如下:
Average : 3228132966.4
Count : 240
CounterName : \Memory\AvailableMemory
DeploymentId : 2c90752b-100f-4640-a056-e2b894bf5bd5
Host : cpuusagetest
Last : 3230662656
Maximum : 3231711232
Minimum : 3225419776
TIMESTAMP : 10/16/2017 10:00:00 PM
Total : 774751911936
PartitionKey : *************
RowKey : ***************__:005CMemory:005CAvailableMemory
Etag : W/"datetime'2017-10-16T23%3A00%3A05.5000867Z'"
我不知道为什么只有TIMESTAMP
而另一个是Etag
!在结果中。无论如何,我可以使用此命令获取时间戳:
$result[0].Timestamp
它将始终返回一个类似 10/16/2017 23:00:00
的字符串,但在表格的行中,它存储的内容类似于 2017-10-16T23:30:00.000
。我需要准确地获得它存储在存储表中的格式。
我尝试使用如下命令更改格式:
[String]$result[0].Timestamp
or
$result[$j].Timestamp.toString("s")
但结果是一样的。
请注意当我使用$result[$j].Timestamp.GetType().FullName
结果为System.DateTime
时,我的表格中的类型属性 DateTime
我不能(并且不想)改变它。
上面是我的Azure存储资源管理器的屏幕截图,显示我有分钟&第二&我的时间戳中的毫秒数
但是当我使用这个命令时:
$result[$j].Timestamp.toString("s")
结果是没有小步和秒...... 我甚至也测试了这些命令:
"{0:MM/dd/yyyy hh:mm:ss}" -f $result[$j].Timestamp
但结果类似于10/16/2017 10:00:00
你能指导我吗?
答案 0 :(得分:1)
提供DateTime d类型的任何对象,命令d.ToString(" s")将以2017-10-16T23:30:00.000
格式返回日期对象如果您有一个字符串并需要将其转换为DateTime,则以下内容将执行不同格式的日期字符串之间的转换:
[DateTime]::Parse("10/16/2017 23:00:00").ToString("s")
以上评估为" 2017-10-16T23:30:00.000"