# Time#脚本和图表功能

Time#() 用于使用数据加载脚本或操作系统（如果不提供格式字符串）中设置的时间格式，计算表达式的时间值。

语法：

time#(text[, format])

返回数据类型： 双

参数

| 参数 | 描述 |
| --- | --- |
| text | 可以计算文本字符串值。 |
| format | 描述应如何解释文本字符串的格式的字符串。如果省略，则使用操作系统中设置的时间格式和小数位分隔符。<br><br>`Time#` 功能支持多种格式选项，可用于不同的时间结构，例如：<br><br>`hh:mm:ss` - 以标准时间格式格式化时间值，并用前导零显示小时、分钟和秒。<br><br>`hh:mm TT` - 使用 12 小时格式，后缀为 AM/PM 。<br><br>`hh:mm` - 只显示小时和分钟，省略秒钟。<br><br>`hh.mm.ss` - 使用不同分隔符的时间格式，如用点号 (`.`) 代替冒号。<br><br>`hh TT` - 仅包括小时和 AM/PM。<br><br>`hh "Hrs" mm "Mins"` - 使用自定义文本显示时间，如 Hrs。<br><br>[数字格式和时间格式的描述](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/conventions-number-time-formats.htm) |

示例：图表表达式

| 示例 | 结果 |
| --- | --- |
| `Time#('09:00:00')` | 当 `TimeFormat` 设置为 `'hh:mm:ss'` 时，返回 `09:00:00`。 |
| `Time#( '09:00:00','hh:mm:ss' )` | 当提供的格式 为 `'hh:mm:ss'` 时返回 `09:00:00`。 |
| `Time#('03:25 PM', 'hh:mm TT')` | 当提供的格式 为 `'hh:mm TT'` 时返回 `03:25 PM`。 |

## 示例 - Time# 基本原理

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/InterpretationFunctions/time_hash.htm)

#### 加载脚本

概述

打开数据加载编辑器，并将下面的加载脚本添加到新部分。

加载脚本包含：

* 加载到名为 `Example` 的数据表中的数据集。

* 数据表中的以下字段：

  * `InputTime`

* `TimeFormat` 变量，其使用 `h:mm:ss TT` 格式。

* 前置加载使用 `Time#` 函数将 `InputTime` 的文本值转换为系统可以使用的名为 `ParsedTime` 的时间/数字字段。

加载脚本

```
SET TimeFormat='h:mm:ss TT';
Example:
Load
InputTime,
Time#(InputTime, 'hh-mm-ss') as ParsedTime
Inline [
InputTime
12-30-45
05-15-00
22-10-55
08-20-35
19-45-15
];
```

结果

加载数据并打开工作表。创建新表并将这些字段添加为维度：

* ` InputTime
                                       `

* `ParsedTime`

创建以下度量：

* `=Time(ParsedTime)`，使用加载脚本中提供的格式作为默认设置查看时间。

结果表

| InputTime | ParsedTime | Time(ParsedTime) |
| --- | --- | --- |
| 05-15-00 | 05-15-00 | 5:15:00 AM |
| 08-20-35 | 08-20-35 | 8:20:35 AM |
| 12-30-45 | 12-30-45 | 12:30:45 PM |
| 19-45-15 | 19-45-15 | 7:45:15 PM |
| 22-10-55 | 22-10-55 | 10:10:55 PM |

`InputTime` 字段中的值以文本形式显示，并左对齐。通过 `Time#` 函数解析 `InputTime` 中的值后，就会创建 `ParsedTime` 字段。新字段中的数值现在被视为一个有效的时间值，并右对齐。第三列使用 `Time` 函数计算 `ParsedTime` 值，并根据加载脚本中的 `TimeFormat` 格式化值。

## 示例 – Time# 场景

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/InterpretationFunctions/time_hash.htm)

#### 加载脚本

概述

打开数据加载编辑器，并将下面的加载脚本添加到新部分。

加载脚本包含：

* 加载到名为 `Example` 的数据表中的数据集。

* 数据表中的以下字段：

  * `NoDelimiterTime`

* `TimeFormat` 变量，其使用 `hh.mm.ss` 格式。

* 前置加载使用 `Time#` 函数将 `NoDelimiterTime` 的文本值转换为名为 `ParsedNoDelimiterTime` 的时间/数字字段。

加载脚本

```
SET TimeFormat='hh.mm.ss';
Example:
Load
NoDelimiterTime,
Time#(NoDelimiterTime, 'hhmmss') as ParsedNoDelimiterTime
Inline [
NoDelimiterTime
143015
091045
235959
060530
184010
]; 
```

结果

加载数据并打开工作表。创建新表并将该字段添加为维度：

* ` NoDelimiterTime
                                       `

创建以下度量：

* `=Time(ParsedNoDelimiterTime,'hh:mm:ss')`，使用加载脚本中提供的格式作为默认设置查看时间。

结果表

| NoDelimiterTime | Time(ParsedNoDelimiterTime,'hh:mm:ss') |
| --- | --- |
| 060530 | 06:05:30 |
| 091045 | 09:10:45 |
| 143015 | 14:30:15 |
| 184010 | 18:40:10 |
| 235959 | 23:59:59 |

结果显示了如何使用 `Time#` 函数将文本值解析和转换为时间/数值。