内容:

自定义日期格式

  • 版本 :2022.1 及更高版本

适用于: Tableau Desktop, Tableau Public

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

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

在视图中设置日期字段的格式

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

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

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

在“数据”窗格中设置日期字段的格式

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

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

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

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

支持的日期格式符号

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

符号描述
(:)时间分隔符。某些区域设置中使用不同字符来表示时间分隔符。在设置时间值的格式时,时间分隔符用于分隔小时、分钟和秒。格式化输出中用作时间分隔符的实际字符由您的系统设置确定。
(/)日期分隔符。某些区域设置中使用不同字符来表示日期分隔符。在设置日期值的格式时,日期分隔符用于分隔日、月和年。格式化输出中用作日期分隔符的实际字符由您的系统设置确定。
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 紧跟 hhh,则会显示分钟而不是月份。
MMM将月份显示为缩写形式 (Jan Dec)。
MMMM将月份显示为完整月份名称 (January December)。
MMMMM将月份显示为单个字母缩写 (JD)
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,则会生成显示 2018 年第一季度的日期。

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

从版本 9.3 开始,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。所有其他值将导致错误。

期间(链接在新窗口中打开)不适用