转换时间字段 (数据管理)

摘要

将存储在一个字段中的日期和时间值传输到另一个字段。 该工具可用于在不同的字段类型(文本、数字或日期字段)之间进行转换,或将值转换为不同的格式(例如 dd/MM/yy HH:mm:ss 到 yyyy-MM-dd)。

使用情况

参数

标注说明数据类型
输入表

包含要转换时间值的字段的图层或表。

Table View
输入时间字段

含有时间值的字段。 字段类型可以是短型、长型、浮点型、双精度、文本或日期。

Field
输入时间格式
(可选)

输入时间字段参数值中时间值的格式。 可从下拉列表中选择标准时间格式,也可以指定自定义格式。 当输入时间字段为日期类型时,不支持该参数。

注:

格式字符串区分大小写。

  • 如果时间字段的数据类型为日期,则不需要时间格式。
  • 如果时间字段的数据类型是数值(短整型、长整型、浮点型或双精度),将在下拉列表中提供标准数值时间格式。
  • 如果时间字段的数据类型是字符串,将在下拉列表中提供标准字符串时间格式。 如果使用字符串字段,您也可以为其指定自定义时间格式。 例如,可采用标准格式将时间值存储在字符串字段中,如 yyyy/MM/dd HH:mm:ss 或以自定义格式存储,如 dd/MM/yyyy HH:mm:ss。 如果使用自定义格式,您还可以指定 a.m. 或 p.m. 指示符。 以下列出了部分常用格式:
    • yyyy - 年,以四位数表示。
    • MM - 数字形式的月份,个位数月份有前导零。
    • MMM - 月,以三个字母的缩略形式表示。
    • dd - 数字形式的每月日期,且单位数日期具有前导零。
    • ddd - 星期,以三个字母的缩略形式表示。
    • hh - 小时,且单位数小时具有前导零;12 小时制。
    • HH - 小时,且单位数小时具有前导零;24 小时制。
    • mm - 分钟,且单位数分钟有前导零。
    • ss - 秒,且单位数秒有前导零。
    • t - 单字符时间标记字符串,例如,A 或 P。
    • tt - 多字符时间标记字符串,例如,AM 或 PM。
    • unix_us - Unix 时间,以微秒为单位。
    • unix_ms - Unix 时间,以毫秒为单位。
    • unix_s - Unix 时间,以秒为单位。
    • unix_hex - 以十六进制表示的 Unix 时间。

String
输出时间字段名称

要添加的字段的名称,其将用于存储转换后的时间值。

String
输出时间字段类型
(可选)

指定输出时间字段的字段类型。

  • 日期此字段类型将为日期类型。 日期字段支持日期和时间值。
  • 文本此字段类型将为文本类型。 文本字段支持字符串。
  • 长整型(32 位整型)此字段类型将为长整型。 长整型字段支持介于 -2,147,483,648 和 2,147,483,647 之间的整数。
  • 短整型(16 位整型)此字段类型将为短整型。 短整型字段支持介于 -32,768 和 32,767 之间的整数。
  • 双精度型(64 位浮点型)此字段类型将为双精度型。 双精度型字段支持介于 -2.2E308 和 1.8E308 之间的小数。
  • 浮点型(32 位浮点型)此字段类型将为浮点型。 浮点型字段支持介于 -3.4E38 和 1.2E38 之间的小数。
String
输出时间格式
(可选)

输出时间值的格式。 支持的输出时间格式取决于输出时间字段类型参数值。 自定义格式还可用于将值转换为不同格式或提取值的一部分(例如年份)。 有关自定义格式的列表,请参阅输入时间格式参数帮助。 当输出时间字段类型参数值为日期时,不使用此参数。

注:

如果输出时间字段的数据类型长度不足以存储转换的时间值,将会截断输出值。

String

派生输出

标注说明数据类型
更新的输入表

更新的输入表。

Table View

arcpy.management.ConvertTimeField(in_table, input_time_field, {input_time_format}, output_time_field, {output_time_type}, {output_time_format})
名称说明数据类型
in_table

包含要转换时间值的字段的图层或表。

Table View
input_time_field

含有时间值的字段。 字段类型可以是短型、长型、浮点型、双精度、文本或日期。

Field
input_time_format
(可选)

input_time_field 参数值中时间值的格式。 当输入时间字段为日期类型时,不支持该参数。

注:

格式字符串区分大小写。

  • 如果时间字段的数据类型为日期,则不需要时间格式。
  • 如果时间字段的数据类型是数值(短整型、长整型、浮点型或双精度),将在下拉列表中提供标准数值时间格式。
  • 如果时间字段的数据类型是字符串,将在下拉列表中提供标准字符串时间格式。 如果使用字符串字段,您也可以为其指定自定义时间格式。 例如,可采用标准格式将时间值存储在字符串字段中,如 yyyy/MM/dd HH:mm:ss 或以自定义格式存储,如 dd/MM/yyyy HH:mm:ss。 如果使用自定义格式,您还可以指定 a.m. 或 p.m. 指示符。 以下列出了部分常用格式:
    • yyyy - 年,以四位数表示。
    • MM - 数字形式的月份,个位数月份有前导零。
    • MMM - 月,以三个字母的缩略形式表示。
    • dd - 数字形式的每月日期,且单位数日期具有前导零。
    • ddd - 星期,以三个字母的缩略形式表示。
    • hh - 小时,且单位数小时具有前导零;12 小时制。
    • HH - 小时,且单位数小时具有前导零;24 小时制。
    • mm - 分钟,且单位数分钟有前导零。
    • ss - 秒,且单位数秒有前导零。
    • t - 单字符时间标记字符串,例如,A 或 P。
    • tt - 多字符时间标记字符串,例如,AM 或 PM。
    • unix_us - Unix 时间,以微秒为单位。
    • unix_ms - Unix 时间,以毫秒为单位。
    • unix_s - Unix 时间,以秒为单位。
    • unix_hex - 以十六进制表示的 Unix 时间。

String
output_time_field

要添加的字段的名称,其将用于存储转换后的时间值。

String
output_time_type
(可选)

指定输出时间字段的字段类型。

  • DATE此字段类型将为日期类型。 日期字段支持日期和时间值。
  • TEXT此字段类型将为文本类型。 文本字段支持字符串。
  • LONG此字段类型将为长整型。 长整型字段支持介于 -2,147,483,648 和 2,147,483,647 之间的整数。
  • SHORT此字段类型将为短整型。 短整型字段支持介于 -32,768 和 32,767 之间的整数。
  • DOUBLE此字段类型将为双精度型。 双精度型字段支持介于 -2.2E308 和 1.8E308 之间的小数。
  • FLOAT此字段类型将为浮点型。 浮点型字段支持介于 -3.4E38 和 1.2E38 之间的小数。
String
output_time_format
(可选)

输出时间值的格式。 支持的输出时间格式取决于 output_time_type 参数值。 自定义格式还可用于将值转换为不同格式或提取值的一部分(例如年份)。 有关自定义格式的列表,请参阅 input_time_format 参数帮助。 当 output_time_type 参数值为 DATE 时,不使用此参数。

注:

如果输出时间字段的数据类型长度不足以存储转换的时间值,将会截断输出值。

String

派生输出

名称说明数据类型
out_table

更新的输入表。

Table View

代码示例

ConvertTimeField 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 ConvertTimeField 函数。

import arcpy
arcpy.ConvertTimeField_management("C:/Data/TemporalData.gdb/Input_Table","Input_Time","1033;MMMM dd, yyyy HH:mm:ss;AM;PM","Output_Time")
ConvertTimeField 示例 2(独立脚本)

以下独立脚本演示了如何使用 ConvertTimeField 函数。

# Name: ConvertTimeField_Ex02.py
# Description: Convert a time field to date field
# Requirements: None

# Import system modules
import arcpy

# Set local variables
inTable = "C:\Data\TemporalData.gdb\Input_Table"
inputTimeField = "Input_Time"
inputTimeFormat = "1033;MMMM dd, yyyy HH:mm:ss;AM;PM"
outputDateField = "Output_Time"

# Execute CalculateEndDate
arcpy.ConvertTimeField_management(inTable, inputTimeField, inputTimeFormat, outputDateField)