自定义日期格式

本文论述如何使用自定义日期格式字段来设置视图中日期的格式。有关 Tableau 如何处理日期的概述,请参见“日期和时间”“更改日期级别”。有关为数据源设置日期属性的信息,请参见“数据源的日期属性”

如何查找自定义日期格式字段

在视图中设置日期字段的格式 (Tableau Desktop)

若要在 Tableau Desktop 中设置视图中日期字段的格式,请右键单击(在 Mac 上按住 Control 单击)该字段,并选择“格式”

这将在视图左侧打开“设置格式”面板。选择“日期”字段。

在设置日期格式时,Tableau 会呈现可用格式的列表。通常,列表中的最后一项为“自定义”。您将单独使用或以组合方式使用“支持的日期格式符号”表中列出的格式符号来指定自定义日期。

 

设置视图中日期字段的格式(Tableau Cloud 和 Tableau Server)

若要在 Tableau Cloud 和 Tableau Server 中设置视图中日期字段的格式,请右键单击(在 Mac 上按住 Control 单击)该字段,并选择“设置日期格式”



在“数据”窗格中设置日期字段的格式(仅限 Tableau Desktop)

若要设置“数据”窗格中日期字段的格式,请右键单击该字段,并选择“默认属性”>“日期格式”

当工作簿连接到 Tableau 数据提取或通过实时连接来连接到也支持日期格式的数据源时,支持使用表中的日期格式。(请参阅数据源的文档来验证所需的日期格式是否受支持。)

Tableau 将从数据源中检索日期格式。Tableau Server 还可以从运行 Tableau Server 的服务器上的用户运行身份帐户中检索日期格式。

注意: 以下日期格式可能与用于类型转换函数的日期格式不同。有关详细信息,请参见“将字符串转换为日期字段”

支持的日期格式符号

使用以下符号来构建自定义日期格式。

符号描述
(:)时间分隔符。某些区域设置中使用不同字符来表示时间分隔符。在设置时间值的格式时,时间分隔符用于分隔小时、分钟和秒。格式化输出中用作时间分隔符的实际字符由您的系统设置确定。
(/)日期分隔符。某些区域设置中使用不同字符来表示日期分隔符。在设置日期值的格式时,日期分隔符用于分隔日、月和年。格式化输出中用作日期分隔符的实际字符由您的系统设置确定。
c按该顺序将日期显示为 ddddd,并将时间显示为
ttttt。如果日期系列数字中没有小数部分,则只显示日期信息;如果没有整数部分,则只显示时间信息。
d将天显示为不含前导零的数字 (1 -31)。
dd将天显示为包含前导零的数字 (01 -31)。
ddd将天显示为缩写形式 (Sun,Sat)。
dddd将天显示为全名 (Sunday,Saturday)。
ddddd将日期显示为完整日期(包括日、月和年),格式依据系统的短日期格式设定来设置。默认短日期格式为 m/d/yy
dddddd将日期系列数字显示为完整日期(包括日、月和年),格式依据系统识别的长日期设定来设置。默认长日期格式为 mmmm dd, yyyy
aaaa与 dddd 相同,只不过它是字符串的本地化版本。
w将一周中的一天显示为数字(1 表示星期日,直至 7 表示星期六)。
ww将年中的周显示为数字 (1 -54)。
M将月份显示为不含前导零的数字 (1 12)。如果 m 紧跟 hhh,则会显示分钟而不是月份。
MM将月份显示为包含前导零的数字 (01 -12)。如果 m 紧跟 h hh,则会显示分钟而不是月份。
MMM将月份显示为缩写形式 (Jan-Dec)。
MMMM将月份显示为完整月份名称 (January-December)。
MMMMM将月份显示为单个字母缩写 (J-D)
oooo与 MMMM 相同,但已本地化。
q将年中的季度显示为数字 (1-4)。
y将年中的一天显示为数字 (1-366)。
yy将年显示为 2 位数字 (00-99)。
yyyy将年显示为 4 位数字 (100-9999)。
h将小时显示为不含前导零的数字 (0-23)。
Hh将小时显示为包含前导零的数字 (00-23)。
N将分钟显示为不含前导零的数字 (0 59)。
Nn将分钟显示为包含前导零的数字 (00 59)。
S将秒显示为不含前导零的数字 (0 59)。
Ss将秒显示为包含前导零的数字 (00 59)。
000显示毫秒。在指定毫秒之前使用句点字符作为分隔符。
t t t t t将时间显示为完整时间(包括小时、分钟和秒),使用系统识别的时间格式所定义的时间分隔符进行格式设置。如果选择了前导零选项并且时间早于 10:00 A.M. 或 P.M,则显示前导零。默认时间格式为 h:mm:ss
AM/PM使用 12 小时制并为中午之前的任何小时显示大写 AM;为中午和 11:59 P.M 之间的任何小时显示大写 PM。
am/pm使用 12 小时制并为中午之前的任何小时显示小写 AM;为中午和 11:59 P.M 之间的任何小时显示小写 PM。
A/P使用 12 小时制并为中午之前的任何小时显示大写 A;为中午和 11:59 P.M 之间的任何小时显示大写 P。
a/p使用 12 小时制并为中午之前的任何小时显示小写 A;为中午和 11:59 P.M 之间的任何小时显示小写 P。
AMPM使用 12 小时制,并为中午之前的任何小时显示您的系统定义的 AM 字符串文本;为中午和 11:59 P.M 之间的任何小时显示系统定义的 PM 字符串文本。AMPM 可以为大写或小写,但显示的字符串的大小写与系统设置定义的字符串匹配。默认格式为 AM/PM。

自定义日期格式示例

可以单独使用或以组合方式使用上表中的任何日期格式符号。

如果指定自定义格式 yyyy-MM-dd HH:mm:ss.000,则会以 2015-05-10 11:22:16.543 格式生成日期。此类格式可能适合于科学数据。

如果指定自定义格式 DDDD DD,则会生成显示工作日和天的日期,如下所示。

如果指定自定义格式 yy-mm-dd (dddd),则会以 18-01-04 (Thursday) 格式生成日期。

如果指定自定义格式 "Q"1 YYYY,则会生成显示 Q1 2018 的日期。

基于日本年号的日期格式的支持

Tableau 支持基于日本天皇年号的日期 (Wareki) 格式。下面介绍了如何将基于年号的日期格式应用于视图中的字段:

  1. 将工作簿区域设置设为日语。

  2. 右键单击视图中想要为其设置日期格式的字段。

  3. 选择“设置格式”

  4. “格式”窗格中,从“日期”下拉列表中选择格式。

如果所需的格式未列出,您可以构建自己的日期格式。为此,请在“日期”框中选择“自定义格式”,然后键入使用 Tableau 日期占位符的格式。提供了以下基于年号的年份占位符:

符号描述
g短年号名称(例如表示平成年号的 H)。
gg年号名称(例如平成)。
ggg长年号名称(对于日语,此名称与常规年号名称相同)。
e基于年号的年份,例如表示某个年号元年的 1。
ee基于年号的年份,例如表示某个年号元年的 01。如果只有一位数,则会在基于年号的年份前面添加一个零。

如果工作簿区域设置不是日语,您可以创建自定义日期格式,然后在格式前面插入语言代码 !ja_JP!,以使看起来如下所示:

!ja_JP! gg ee"年"mm"月"dd"日"

该语言代码会强制将日期作为日语日期处理。

Tableau Server 浏览器视图不完全支持基于年号的日期。特别是,如果发布包含交互式筛选器的工作簿,则不会填入 e 和 g 占位符:

为了避免此问题,如果将在浏览器中查看您的工作簿,请不要在交互式筛选器中显示基于年号的日期。

在日期格式中使用字面文本

您可能希望日期格式包括某些单词或短语,例如 Fiscal Quarter q of yyyy。但是,如果您直接在 Tableau 格式框中键入该文本,则系统可能会像对待日期部分那样对待这些字母:

为了避免 Tableau 这样做,请在不应作为日期部分处理的字母和单词两边加上双引号:"Fiscal Quarter" q "of" yyyy

如果希望在已加引号的部分内部使用字面引号,请插入此代码:"\""。例如,格式 "Fiscal "\"" Quarter" 将被格式化为 Fiscal " Quarter

数据提取数据源 DATEPARSE 函数的格式语法

如果要在数据提取中使用 DATEPARSE 函数,请使用 Unicode 协会定义的语法。

下表列出了可采用 DATEPARSE 函数的格式参数表示的字段类型。单击字段类型可通过 Unicode 协会网站了解有关符号、字段模式、示例和说明的信息。

时间单位说明
年代(链接在新窗口中打开)不适用
(链接在新窗口中打开)

.Hyper 数据提取中支持除“U”之外的所有符号。

注意:

  • 负值表示公元前 (BC) 年份。例如,DATEPARSE('y','-10') 返回公元前 11 年的一月,DATEPARSE('y','-0') 返回公元前 1 年的一月。

  • 如果使用日历年的“y”模式“yy”将请求年份的两个低位数。对于小于 70 的数字,DATEPARSE 函数返回年份 2000+x。对于大于或等于 70 的数字,DATEPARSE 函数返回年份 1900+x。

  • 如果使用基于“ISO 周日期”的日历中的“Y”,年份过渡将在周边界上进行,可能与日历年过渡不同。“Y”标示与 ISO 年-周日历中的模式字符“w”结合使用。ISO 周日期系统实际上是 ISO 8601 日期和时间标准中规定的一种闰周日历系统。与“y”类似“Y”的负值表示公元前 (BC) 年份。

(链接在新窗口中打开)

.Hyper 数据提取中支持除“I”之外的所有符号。

注意: 

  • 月标示与表示日数的“d”结合使用。

  • 与 ICU 相反,.hyper 数据提取允许值 1-12。其他值将导致错误。

(链接在新窗口中打开)

.Hyper 数据提取中支持除“W”之外的所有符号。

注意:

  • 如果使用“w”,与 ICU 相反,.hyper 数据提取仅允许有效的周数。一年有 52 或 53 周 (ISO 8601)。DATEPARSE 函数会验证输入。例如,2016 年的第 53 周将导致错误,原因是 2016 年不存在第 53 周。

  • 如果使用“W”,ICU 将不支持此标示,但它对于像“九月的第 1 个星期一”这样的日期很有用。

(链接在新窗口中打开)

注意:

  • 如果使用“d”,与 ICU 相反,.hyper 数据提取仅允许有效的日数。例如,2 月 31 日将发生错误。

  • 如果使用“D”,与 ICU 相反,.hyper 数据提取仅允许有效的日数。例如,2017 年的第 336 日将发生错误。

小时(链接在新窗口中打开)

.Hyper 数据提取中仅支持“h”和“H”符号。

注意:

  • 如果使用“h”,.hyper 数据提取对于此字段不允许负值。负值将导致错误。

  • 如果使用“H”,.hyper 数据提取对于此字段不允许负值。负值将导致错误。

分钟(链接在新窗口中打开)注意:与 ICU 相反,.hyper 数据提取对于此字段不允许负值。负值将导致错误。
(链接在新窗口中打开)

注意: 

  • 与 ICU 相反,.hyper 数据提取对于此字段不允许负值。负值将导致错误。

  • 如果使用“S”,DATEPARSE('ss.SSSS', '12.3456') 将返回 1990-01-01 00:00:12:3456 AD。
季度(链接在新窗口中打开)注意:与 ICU 相反,.hyper 数据提取仅允许值 1-4。所有其他值将导致错误。
平日(链接在新窗口中打开)

注意: 

  • 如果使用“e”和“ee”,与 ICU 相反,.hyper 数据提取仅允许值 1-7。所有其他值将导致错误。

  • 如果使用“c..cc”,与 ICU 相反,.hyper 数据提取仅允许值 1-7。所有其他值将导致错误。

期间(链接在新窗口中打开)不适用
感谢您的反馈!您的反馈已成功提交。谢谢!