

• AWS Systems Manager CloudWatch ダッシュボードは、2026 年 4 月 30 日以降は利用できなくなります。お客様は、これまでと同様に Amazon CloudWatch コンソールを使用して、Amazon CloudWatch ダッシュボードの表示、作成、管理を継続できます。詳細については、「[Amazon CloudWatch ダッシュボードのドキュメント](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` キーを受け入れます。もう 1 つの例は、`DescribeAutomationExecutions` API オペレーションです。これは、`StartTimeBefore` オブジェクトの有効な値の一部として `StartTimeAfter` キーと `AutomationExecutionFilter` キーを受け入れます。リクエストをフィルタリングするときにこれらのキーに指定する値は、ISO 8601 標準と一致する必要があります。ISO 8601 については、[ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) を参照してください。

これらのフォーマットされた日付および時刻文字列は、フィルタに限定されません。リクエストパラメータの値を指定するときに、特定の日時を表す ISO 8601 形式の文字列を必要とする API オペレーションもあります。例えば、`AtTime` オペレーションの `GetCalendarState` リクエストパラメータです。これらの文字列は作成が困難です。このトピックの例を使用して、Systems Manager API オペレーションで使用する、書式設定された日付および時刻文字列を作成します。

## Systems Manager の日付と時刻文字列を書式設定する
<a name="systems-manager-datetime-strings-format"></a>

ISO 8601 形式の日付および時刻文字列の例を次に示します。

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

これは、協定世界時 (UTC) 2024 年 5 月 8 日の 15:16 を表しています。文字列のカレンダー日付部分は、ハイフンで区切られた 4 桁の年、2 桁の月、および 2 桁の日で表されます。これは、次の形式で表すことができます。

```
YYYY-MM-DD
```

文字列の時刻部分は、区切り記号として文字「T」で始まり、コロンで区切られた 2 桁の時間、2 桁の分、2 桁の秒で表されます。これは、次の形式で表すことができます。

```
hh:mm:ss
```

文字列の時刻部分は、UTC 標準を示す文字「Z」で終わります。

## Systems Manager のカスタム日付と時刻文字列を作成する
<a name="systems-manager-datetime-strings-custom"></a>

任意のコマンドラインツールを使用して、ローカルマシンからカスタムの日付および時刻文字列を作成できます。ISO 8601 形式の日付および時刻文字列の作成に使用する構文は、ローカルマシンのオペレーティングシステムによって異なります。以下は、Linux のGNU coreutils の `date` または 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 ( AWS CLI ) の ISO 8601 形式の日付と時刻のカスタム履歴文字列を作成し、使用する方法の例です。

------
#### [ AWS CLI ]
+ SSM ドキュメントの過去 1 週間のコマンド履歴を取得します。

  ```
  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
  ```
+ 過去 1 週間のオートメーションの実行履歴を取得します。

  ```
  lastWeekStamp=$(date '+%Y-%m-%dT%H:%M:%SZ' -d '7 days ago')
  
  aws ssm describe-automation-executions \
      --filters Key=StartTimeAfter,Values=$lastWeekStamp
  ```
+ 過去 1 か月間のセッション履歴を取得します。

  ```
  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 ドキュメントの過去 1 週間のコマンド履歴を取得します。

  ```
  $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
  ```
+ 過去 1 週間のオートメーションの実行履歴を取得します。

  ```
  $lastWeekStamp = (Get-Date).AddDays(-7).ToString("yyyy-MM-ddTH:mm:ssZ")
  
  Get-SSMAutomationExecutionList `
      -Filters @{Key="StartTimeAfter";Values=$lastWeekStamp}
  ```
+ 過去 1 か月間のセッション履歴を取得します。

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

------