在地图中配置时间
https://pro.arcgis.com/zh-cn/pro-app/help/mapping/time/set-the-time-properties-on-data.htm
将字符串型或数值型时间值转换为日期格式
建议将时态数据的时间值存储在日期字段中。日期字段是一个专用于存储时间和日期信息的数据库字段类型。与在数值或字符串字段中存储时间相比,它对于查询性能更为有效,且可支持更加复杂的数据库查询。
如果您将时间值存储在字符串或数值(短整型、长整型、浮点型或双精度型)字段中,则可以使用转换时间字段地理处理工具将其转换为日期字段。使用此工具可以指定用来解释日期和时间值的标准或自定义时间格式,并将其转换为日期格式。
转换时间字段工具支持标准格式。然而,对于使用自定义日期和时间格式存储在字符串字段中的时间值,您可以创建用来解释数据的自定义日期和时间格式。例如,在使用转换时间字段工具将一个存储为字符串形式的时间值“Tuesday, August 20, 2002”转换为日期格式时,请将输入时间格式指定为 dddd, MMMM dd, yyyy。
注:
- 如果使用转换时间字段工具,则支持的标准输入时间格式列表可能会有所不同,具体取决于输入时间值是存储在字符串字段还是数值(短整型、长整型、浮点型或双精度型)字段中。
- 仅当时间值存储在字符串字段中时,才能使用转换时间字段工具来指定自定义日期和时间格式。当时间值存储在数值字段时,将不支持自定义日期和时间格式。
日期和时间格式字符串
日期和时间格式字符串是一个文本字符串,用于解释包含日期和时间信息的数据值。每个格式字符串都由包含可用格式类型的格式组合构成。格式类型包括星期、月、小时和秒等。在单个日期和时间格式字符串中,只应使用每种格式类型中的一种格式。但是,并非每种格式类型都需要包含在格式字符串中。例如,在定义日期格式字符串时只使用年、月、日信息而不涉及任何时间信息的做法十分常见。
格式字符串既可以只包含时间信息或日期信息,也可以同时包含日期和时间的组合信息。此外,格式字符串还可以包含用来分隔格式字符串中所用格式的分隔符,如逗号。
您需要对数据进行分析,从而确定用于解释数据的理想日期和时间格式字符串。以下示例显示了用于解释日期和时间的各种格式字符串:
日期和时间格式字符串示例
数据值示例 | 格式字符串 |
---|---|
30/05/1978 02:34:56 |
dd/MM/yyyy HH:mm:ss |
2/4/2010 2:39:28 PM |
M/d/yyyy h:mm:ss tt |
6:05:12 a.m. |
h:mm:ss tt |
23:31:18.345 |
HH:mm:ss.s |
Tuesday, August 20, 2002 |
dddd, MMMM dd, yyyy |
Wed, Aug 31 1994 |
ddd, MMM dd yyyy |
03281999030456 |
MMddyyyyHHmmss |
自定义日期和时间格式
自定义格式字符串由一个或多个日期和时间格式说明符组成。下表总结了可用来创建解释数据的自定义日期和时间格式的各种格式:
日期和时间格式
格式说明符 | 格式类型 | 说明 |
---|---|---|
天 |
日 |
数字形式的每月日期,且单位数没有前导零。 |
dd |
日 |
数字形式的每月日期,且单位数有前导零。 |
ddd |
星期 |
以三个字母的缩略形式显示的星期。此函数使用与指定区域设置相关的缩写,例如,“英语(美国)”中的 Mon。 提示:解释数据值时不会对星期进行验证;因此,数据中显示的星期不必非要与数据值中表示的日期正确对应。 |
dddd |
星期 |
以全名显示的星期。此函数使用与指定区域设置相关的星期全名,例如,“英语(美国)”中的 Monday。 提示:解释数据值时不会对星期进行验证;因此,数据中显示的星期不必非要与数据值中表示的日期正确对应。 |
M |
月 |
数字形式的月,且单位数没有前导零。 |
MM |
月 |
数字形式的月,且单位数有前导零。 |
MMM |
月 |
以三个字母的缩略形式显示的月。此函数使用与指定区域设置相关的缩写,例如,“英语(美国)”中的 Nov。 |
MMMM |
月 |
以全名显示的月。此函数使用与指定区域设置相关的月份全名,例如,“英语(美国)”中的 November 和“西班牙语(西班牙)”中的 noviembre。 |
y |
年份 |
两位数的年份,但小于 10 的年份没有前导零。 提示:用这种方法表示的年份范围可以从 1950 到 2049。小于或等于 49 的值将被视为 21 世纪的年份,例如 7 将被视为 2007 年。大于或等于 50 的值将被视为 20 世纪的年份,例如 67 将被视为 1967 年。 |
yy |
年份 |
以末两位数显示的年份,但小于 10 的年份具有前导零。 提示:用这种方法表示的年份范围可以从 1950 到 2049。小于或等于 49 的值将被视为 21 世纪的年份。例如,07 会被视为 2007。大于或等于 50 的值将被视为 20 世纪的年份,例如 67 将被视为 1967 年。 |
yyy |
年份 |
仅以三位数显示的年份。用这种方法表示的年份范围可以从 1 到 999。 |
yyyy 年 |
年份 |
以四位数显示的年份。 |
gg |
纪元 |
时期/年代字符串。此函数使用与指定区域设置相关的纪元值。 |
h |
小时 |
小时,且单位数小时没有前导零;12 小时制 |
H |
小时 |
小时,且单位数小时没有前导零;24 小时制 |
hh |
小时 |
小时,且单位数小时具有前导零;12 小时制 |
HH |
小时 |
小时,且单位数小时具有前导零;24 小时制 |
m |
分钟 |
分钟,且单位数分钟没有前导零。 |
mm |
分钟 |
分钟,且单位数分钟具有前导零。 |
s |
秒 |
秒,且单位数秒没有前导零。 |
ss |
秒 |
秒,且单位数秒具有前导零。 |
s.s |
秒 |
包含亚秒的秒,且单位数秒没有前导零。尽管此格式只能显示一位小数,但仍可使用任意位数的小数。 警告:亚秒的精度将受到时间字段所支持的数据类型的限制。例如,如果使用的时间字段数据类型为浮点型或双精度型,则将出现舍入误差。 |
ss.s |
秒 |
包含亚秒的秒,且单位数秒具有前导零。尽管此格式只能显示一位小数,但仍可使用任意位数的小数。 警告:亚秒的精度将受到时间字段所支持的数据类型的限制,例如,如果使用的时间字段数据类型为浮点型或双精度型,则将出现舍入误差。 |
t |
时间标记 |
单字符时间标记字符串,例如,A 或 P。 |
tt |
时间标记 |
多字符时间标记字符串,例如,AM 或 PM。 |
分隔符
分隔符是用于分隔文本数据值信息的字符。常用的分隔符包括逗号 (,)、冒号 (:) 和空格 ( ),但可用于创建格式字符串的分隔符不受任何限制。您可以创建完全不带任何分隔符的格式字符串,尤其是在解释存储在数值字段中的日期和时间时,因为大部分常用的分隔符都无法在数值字段中存储。
在极少数情况下,包含分隔符的数据与上表中的格式冲突。在这种情况下,必须使用单引号来隔离格式字符串中的分隔符。一般来说,单引号可用来隔离格式字符串中的所有分隔符,但除非存在潜在冲突,否则不建议您使用单引号。以下示例对这些概念进行了说明:
数据值示例 | 格式 | 解释的日期或时间(显示为 MM/dd/yyyy 或 HH:mm:ss) |
---|---|---|
month12day30year2010 |
'month'MM'day'dd'year'yyyy |
12/30/2010 |
30/12/2010 |
ddMMyyyy |
12/30/2010 |
Time:18hr6min3sec |
'Time:'h'hr'm'min's'sec' |
18:06:03 |
18:6:3 |
HH:m:s |
18:06:03 |
区域设置
区域设置非常重要,因为它们决定着上表中某些数据格式的较长制图表达的有效数据值。例如,仅当区域设置为英语区域时,才会为 MMMM 对应解释值 November。在某些情况下,如果格式字符串不使用任何较长的制图表达,则区域设置将与日期解释无关,但区域设置可能会影响 AM 和 PM 指示符的解释。如果未指定 AM 或 PM 指示符,则将使用区域设置默认的 AM 和 PM 指示符。
区域设置不会影响用于创建格式字符串的格式。例如,无论何种区域设置,字符 M(或 MM、MMM、MMMM)都表示月份。以下示例说明了如何使用区域设置来解释日期:
数据值 | 格式字符串 | 区域设置 | 解释的日期 (MM/dd/yyyy) |
---|---|---|---|
November 30, 2010 |
MMMM dd, yyyy |
英语(美国) |
11/30/2010 |
Noviembre 30, 2010 |
MMMM dd, yyyy |
西班牙语(西班牙) |
11/30/2010 |
Mon, Feb 22, 2010 |
ddd, MMM dd, yyyy |
英语(美国) |
2/22/2010 |
30/12/2010 |
dd/M/yyyy |
所有区域设置 |
12/30/2010 |
AM 和 PM 指示符
标准时间标记或 AM 和 PM 指示符存在于每个区域设置中。但您也可以使用某些工具灵活定义您自己的时间标记。如果格式字符串中存在时间标记(t 或 tt),则必须定义表示该时间标记的字符。时间标记仅适用于使用 12 小时制 (h 或 hh)的格式字符串。但并不适用于使用 24 小时制(H 或 HH)的格式字符串。如果您没有定义自己的时间标记,则将使用所选区域设置的标准时间标记。要定义您自己的 AM 和 PM 指示符,时间字段的字段数据类型必须为文本。以下示例将只使用 PM 指示符来简要说明这些概念。这些概念对 AM 指示符同样适用:
数据值 | 格式字符串 | PM 指示符 | 解释的时间 (HH:mm:ss) |
---|---|---|---|
6:12:34 P |
h:mm:ss t |
P |
18:12:34 |
6:12:34 p.m. |
h:mm:ss tt |
p.m. |
18:12:34 |
6:12:34 |
H:mm:ss |
PM |
6:12:34 |
6:12:34 PM |
h:mm:ss tt |
PM |
18:12:34 |
转换时间字段 (数据管理)
描述
将存储在字符串或数值字段中的时间值转换为日期字段。此工具也可用于将以字符串、数值或日期字段形式存储的时间值转换为如一周中周几或一年中第几个月等自定义格式。
使用方法
-
如果所选择的输入时间字段为字符串或文本字段,可以从支持的时间字段格式列表中选择输入时间格式,或定义自定义的时间字段格式来解释字符串字段中的自定义日期或时间值。有关字符串字段的自定义格式的详细信息,请参阅将字符串时间值转换为日期格式。
-
如果所选择的输入时间字段是数值字段(短整型、长整型、浮点型或双精度),可以从支持的标准时间字段格式列表中选择输入时间格式。数值字段不支持自定义时间格式。
语法
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
(可选)
|
输入时间字段中的时间值所使用的存储格式。可以从下拉列表中选择标准时间格式,也可以输入自定义格式。 注:格式字符串区分大小写。
|
String |
output_time_field
|
用于要存储转换的时间值的输出字段的名称。 |
String |
output_time_type
(可选)
|
输出时间字段的数据类型。
|
String |
output_time_format
(可选)
|
保存输出时间值时使用的格式。输出时间格式列表取决于为输出时间字段指定的输出数据类型。如果输出时间字段的数据类型不是日期,也可以使用自定义格式。有关自定义格式的列表,请参阅“输入时间格式”的说明。 注:如果输出时间字段的数据类型长度不足以存储转换的时间值,将会截断输出值。 |
String |
派生输出
名称 | 说明 | 数据类型 |
out_table |
已更新的输入表。 |
表视图 |
代码示例
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 工具。
# Name: ConvertTimeField_Ex02.py
# Description: Convert a time field to date field
# Requirements: None
# Import system modules
import arcpy
# Set local variables
inTable = "C:DataTemporalData.gdbInput_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)
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是