

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# $util.time 中的时间帮助程序
<a name="time-helpers-in-util-time"></a>

**注意**  
我们现在主要支持 APPSYNC\_JS 运行时系统及其文档。请考虑使用 APPSYNC\_JS 运行时系统和[此处](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-reference-js-version.html)的指南。

`$util.time` 变量包含的日期时间方法有助于生成时间截，在不同的日期时间格式之间进行转换，并解析日期时间字符串。日期时间格式的语法基于该语法 [DateTimeFormatter](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html)，您可以参考该语法以获取更多文档。我们在下面提供了一些示例以及可用方法和描述列表。

## 时间实用程序
<a name="utility-helpers-in-time"></a>

### 时间实用程序列表
<a name="utility-helpers-in-time-list"></a>

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

** `$util.time.nowEpochSeconds() : long` **  
返回从 1970-01-01T00:00:00Z 纪元到现在的秒数。

** `$util.time.nowEpochMilliSeconds() : long` **  
返回从 1970-01-01T00:00:00Z 纪元到现在的毫秒数。

** `$util.time.nowFormatted(String) : String` **  
使用字符串输入类型指定的格式返回当前 UTC 时间戳的字符串。

** `$util.time.nowFormatted(String, String) : String` **  
使用字符串输入类型指定的格式和时区返回该时区当前时间戳的字符串。

** `$util.time.parseFormattedToEpochMilliSeconds(String, String) : Long` **  
解析作为字符串传递的时间戳以及包含时区的格式，然后将时间戳作为自纪元以来的毫秒数返回。

** `$util.time.parseFormattedToEpochMilliSeconds(String, String, String) : Long` **  
解析作为字符串传递的时间戳以及格式和时区，然后将时间戳作为自纪元以来的毫秒数返回。

** `$util.time.parseISO8601ToEpochMilliSeconds(String) : Long` **  
解析作为字符串传递 ISO8601 的时间戳，然后返回自纪元以来的毫秒数的时间戳。

** `$util.time.epochMilliSecondsToSeconds(long) : long` **  
将纪元毫秒数时间戳转换为纪元秒数时间戳。

** `$util.time.epochMilliSecondsToISO8601(long) : String` **  
将纪元毫秒时间戳转换为时间戳。 ISO8601

** `$util.time.epochMilliSecondsToFormatted(long, String) : String` **  
将以长型形式传递的纪元毫秒数时间戳转换为根据提供的 UTC 格式设置的时间戳。

** `$util.time.epochMilliSecondsToFormatted(long, String, String) : String` **  
将以长型形式传递的纪元毫秒数时间戳转换为根据提供的时区和格式设置的时间戳。

## 单独函数示例
<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
```