

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

# \$1util.time 中的時間協助程式
<a name="time-helpers-in-util-time"></a>

**注意**  
我們現在主要支援 APPSYNC\$1JS 執行期及其文件。請考慮[在此處](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-js-version.html)使用 APPSYNC\$1JS 執行期及其指南。

`$util.time` 變數包含日期時間方法，可協助產生時間戳記、在日期時間格式之間轉換，以及剖析日期時間字串。日期時間格式的語法是根據 [DateTimeFormatter](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html)，您可以參考以取得更詳細的文件。我們提供以下一些範例，以及可用方法和描述的清單。

## 時間 utils
<a name="utility-helpers-in-time"></a>

### 時間使用率清單
<a name="utility-helpers-in-time-list"></a>

** `$util.time.nowISO8601() : String` **  
以 [ISO8601 格式](https://en.wikipedia.org/wiki/ISO_8601)傳回 UTC 的字串表示方式。

** `$util.time.nowEpochSeconds() : long` **  
傳回從 1970-01-01T00:00:00Z 的 epoch 到現在的秒數。

** `$util.time.nowEpochMilliSeconds() : long` **  
傳回從 1970-01-01T00:00:00Z 的 epoch 到現在的毫秒數。

** `$util.time.nowFormatted(String) : String` **  
使用字串輸入類型的指定格式，傳回 UTC 中目前時間戳記的字串。

** `$util.time.nowFormatted(String, String) : String` **  
使用字串輸入類型的指定格式和時區，傳回時區目前時間戳記的字串。

** `$util.time.parseFormattedToEpochMilliSeconds(String, String) : Long` **  
剖析以字串形式傳遞的時間戳記，以及包含時區的格式，然後傳回自 epoch 以來以毫秒為單位的時間戳記。

** `$util.time.parseFormattedToEpochMilliSeconds(String, String, String) : Long` **  
剖析以字串形式傳遞的時間戳記，以及格式和時區，然後以毫秒為單位傳回自 epoch 以來的時間戳記。

** `$util.time.parseISO8601ToEpochMilliSeconds(String) : Long` **  
剖析以字串形式傳遞的 ISO8601 時間戳記，然後將時間戳記傳回為自 epoch 以來的毫秒。

** `$util.time.epochMilliSecondsToSeconds(long) : long` **  
將 epoch 毫秒時間戳記轉換為 epoch 秒時間戳記。

** `$util.time.epochMilliSecondsToISO8601(long) : String` **  
將 epoch 毫秒時間戳記轉換為 ISO8601 時間戳記。

** `$util.time.epochMilliSecondsToFormatted(long, String) : String` **  
將 epoch 毫秒時間戳記轉換為根據 UTC 格式提供的時間戳記。

** `$util.time.epochMilliSecondsToFormatted(long, String, String) : String` **  
將長傳遞的 epoch 毫秒時間戳記轉換為根據所提供時區中提供的格式格式化的時間戳記。

## 獨立函數範例
<a name="standalone-function-examples"></a>

```
$util.time.nowISO8601()                                            : 2018-02-06T19:01:35.749Z
$util.time.nowEpochSeconds()                                       : 1517943695
$util.time.nowEpochMilliSeconds()                                  : 1517943695750
$util.time.nowFormatted("yyyy-MM-dd HH:mm:ssZ")                    : 2018-02-06 19:01:35+0000
$util.time.nowFormatted("yyyy-MM-dd HH:mm:ssZ", "+08:00")          : 2018-02-07 03:01:35+0800
$util.time.nowFormatted("yyyy-MM-dd HH:mm:ssZ", "Australia/Perth") : 2018-02-07 03:01:35+0800
```

## 轉換範例
<a name="conversion-examples"></a>

```
#set( $nowEpochMillis = 1517943695758 )
$util.time.epochMilliSecondsToSeconds($nowEpochMillis)                                     : 1517943695
$util.time.epochMilliSecondsToISO8601($nowEpochMillis)                                     : 2018-02-06T19:01:35.758Z
$util.time.epochMilliSecondsToFormatted($nowEpochMillis, "yyyy-MM-dd HH:mm:ssZ")           : 2018-02-06 19:01:35+0000
$util.time.epochMilliSecondsToFormatted($nowEpochMillis, "yyyy-MM-dd HH:mm:ssZ", "+08:00") : 2018-02-07 03:01:35+0800
```

## 剖析範例
<a name="parsing-examples"></a>

```
$util.time.parseISO8601ToEpochMilliSeconds("2018-02-01T17:21:05.180+08:00")                          : 1517476865180
$util.time.parseFormattedToEpochMilliSeconds("2018-02-02 01:19:22+0800", "yyyy-MM-dd HH:mm:ssZ")     : 1517505562000
$util.time.parseFormattedToEpochMilliSeconds("2018-02-02 01:19:22", "yyyy-MM-dd HH:mm:ss", "+08:00") : 1517505562000
```

## 使用已 AWS AppSync 定義的純量
<a name="usage-with-aws-scalars"></a>

以下格式與 `AWSDate`、`AWSDateTime` 和 `AWSTime` 相容。

```
$util.time.nowFormatted("yyyy-MM-dd[XXX]", "-07:00:30")               : 2018-07-11-07:00
$util.time.nowFormatted("yyyy-MM-dd'T'HH:mm:ss[XXXXX]", "-07:00:30")  : 2018-07-11T15:14:15-07:00:30
```