

• 2026 年 4 月 30 日之後， AWS Systems Manager CloudWatch Dashboard 將不再可用。客戶可以繼續使用 Amazon CloudWatch 主控台來檢視、建立和管理其 Amazon CloudWatch 儀表板，就像現在一樣。如需詳細資訊，請參閱 [Amazon CloudWatch Dashboard 文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 參考：Systems Manager 的日期和時間字串格式
<a name="systems-manager-datetime-strings"></a>

AWS Systems Manager API 操作接受篩選條件，以限制請求傳回的結果數量。其中一些 API 操作接受的篩選條件需要格式化字串以代表特定日期和時間。例如，`DescribeSessions` API 操作接受 `InvokedAfter` 和 `InvokedBefore` 金鑰做為 `SessionFilter` 物件的部分有效值。另一個範例是 `DescribeAutomationExecutions` API 操作，它接受 `StartTimeBefore` 和 `StartTimeAfter` 金鑰做為 `AutomationExecutionFilter` 物件的部分有效值。篩選請求時，您為這些索引鍵提供的數值必須符合 ISO 8601 標準。如需 ISO 8601 的詳細資訊，請參閱 [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)。

這些格式化的日期和時間字串不限於篩選條件。在提供請求參數值時，還有一些 API 操作需要 ISO 8601 格式的字串來表示特定的日期和時間。例如，`AtTime` 操作的 `GetCalendarState` 請求參數。這些字串很難建立。使用本主題中的範例，來建立格式化的日期和時間字串，以搭配 Systems Manager API 操作使用。

## 為 Systems Manager 格式化日期和時間字串
<a name="systems-manager-datetime-strings-format"></a>

以下是 ISO 8601 格式化的日期和時間字串的範例。

```
2024-05-08T15:16:43Z
```

這代表 2024 年 5 月 8 日國際標準時間 (UTC) 15:16。字串的行事曆日期部分以四位數的年份、二位數的月份和二位數的日期來表示，並以連字號分隔。這可以用以下格式表示。

```
YYYY-MM-DD
```

字串的時間部分以字母「T」開頭做為分隔符號，然後以冒號分隔的二位數小時、二位數分鐘，以及二位數秒表示。這可以用以下格式表示。

```
hh:mm:ss
```

字串的時間部分以字母「Z」結尾，表示 UTC 標準。

## 為 Systems Manager 建立自訂的日期和時間字串
<a name="systems-manager-datetime-strings-custom"></a>

您可以使用偏好的命令列工具從本機機器建立自訂日期和時間字串。您建立 ISO 8601 格式化的日期和時間字串所用的語法會因您本機電腦的作業系統而有所不同。以下是如何在 Linux 上使用 `date` GNU 的核心使用程序或在 Windows 上的 PowerShell 來建立 ISO 8601 格式的日期和時間字串的範例。

------
#### [ coreutils ]

```
date '+%Y-%m-%dT%H:%M:%SZ'
```

------
#### [ PowerShell ]

```
(Get-Date).ToString("yyyy-MM-ddTH:mm:ssZ")
```

------

使用 Systems Manager API 操作時，您可能需要建立歷史日期和時間字串以供報告或故障排除之用。以下是如何為 AWS Tools for PowerShell 和 AWS Command Line Interface () 建立和使用自訂歷史 ISO 8601 格式日期和時間字串的範例AWS CLI。

------
#### [ AWS CLI ]
+ 擷取 SSM 文件最後一週的命令歷史記錄。

  ```
  lastWeekStamp=$(date '+%Y-%m-%dT%H:%M:%SZ' -d '7 days ago')
  
  docFilter='{"key":"DocumentName","value":"AWS-RunPatchBaseline"}'
  timeFilter='{"key":"InvokedAfter","value":'\"$lastWeekStamp\"'}'
  
  commandFilters=[$docFilter,$timeFilter]
  
  aws ssm list-commands \
      --filters $commandFilters
  ```
+ 擷取最後一週的自動化執行歷史記錄。

  ```
  lastWeekStamp=$(date '+%Y-%m-%dT%H:%M:%SZ' -d '7 days ago')
  
  aws ssm describe-automation-executions \
      --filters Key=StartTimeAfter,Values=$lastWeekStamp
  ```
+ 擷取最後一個月的工作階段歷史記錄。

  ```
  lastWeekStamp=$(date '+%Y-%m-%dT%H:%M:%SZ' -d '30 days ago')
  
  aws ssm describe-sessions \
      --state History \
      --filters key=InvokedAfter,value=$lastWeekStamp
  ```

------
#### [ AWS Tools for PowerShell ]
+ 擷取 SSM 文件最後一週的命令歷史記錄。

  ```
  $lastWeekStamp = (Get-Date).AddDays(-7).ToString("yyyy-MM-ddTH:mm:ssZ")
  
  $docFilter = @{
      Key="DocumentName"
      Value="AWS-InstallWindowsUpdates"
  }
  $timeFilter = @{
      Key="InvokedAfter"
      Value=$lastWeekStamp
  }
  
  $commandFilters = $docFilter,$timeFilter
  
  Get-SSMCommand `
      -Filters $commandFilters
  ```
+ 擷取最後一週的自動化執行歷史記錄。

  ```
  $lastWeekStamp = (Get-Date).AddDays(-7).ToString("yyyy-MM-ddTH:mm:ssZ")
  
  Get-SSMAutomationExecutionList `
      -Filters @{Key="StartTimeAfter";Values=$lastWeekStamp}
  ```
+ 擷取最後一個月的工作階段歷史記錄。

  ```
  $lastWeekStamp = (Get-Date).AddDays(-30).ToString("yyyy-MM-ddTH:mm:ssZ")
  
  Get-SSMSession `
      -State History `
      -Filters @{Key="InvokedAfter";Value=$lastWeekStamp}
  ```

------