dateformat
重新格式化日期或时间字符串并将其替换为新的日期格式。
源字符串必须采用转换器支持的日期和/或时间格式。有关其他信息,请参见源日期格式参数。
限制:
- 不支持1902年以前的日期。
- 如果您的日期字符串包含“。”,那么源日期格式必须指定参数。例如,处理日期23.03.2015、源格式Y % d % m . %是必需的。
- 不支持小数秒。例如,对于日期字符串2015-03-23 10:23:45.213,.213使用时会被忽略吗未知-自动检测。
参数
选择要重新格式化和替换的属性。
指定源日期的预期格式。有关如何指定日期的详细信息,请参阅“日期格式符号”一节。
如果不知道格式,请选择未知-自动检测系统会将这些值解释为日期。建议尽可能提供源日期格式以避免意外的结果。特别是,在使用ISO8601时间点规范时,如果时区信息不是数据/时间字符串的一部分,那么输出可能会根据本地时区而变化。
将有效日期转换为的目标格式。有关如何指定日期的详细信息,请参阅“日期格式符号”一节。
如果属性的值与指定的不匹配源日期格式,则视为无效,并将其设置为指定值。有关设置此参数的选项的更多信息,请参见变压器参数菜单选项。
因为DateFormatter支持相对日期,所以与格式匹配但可能溢出的日期被认为是有效的。例如,如果源日期格式设置为%Y%m%d,值为' 20090133 '的属性将被设置为' 20090202 '。然而,如果源日期格式为%Y%m%d%H% m% S,值为' 20090133 '的属性将被视为无效日期。
日期格式符号
格式说明符确定目标日期和源日期格式参数的格式。
"-" |
引用字符串(% Y”——“%”——“% d) |
%% |
插入百分号(%) |
%的 |
缩写的工作日名称(星期一、星期二等)。 |
%A |
工作日全称(星期一、星期二等)。 |
% b |
缩写的月份名(Jan、Feb等)(与%h相同)。 |
% B |
全月的名字。 |
% c |
地区特定的日期和时间。UNIX/Mac上默认的“C”语言环境中的日期和时间格式是“%a %b %d %H:%M:%S %Y”。在Windows上,这个值是地区特定的长日期和时间,在区域选项控制面板设置中指定。 |
% C |
四位数年份的前两位(19或20)。 |
% d |
某月某日(01 - 31)。 |
% D |
日期作为% m / % d / y %。 |
% e |
月日(1 - 31),没有前导零。 |
% h |
缩写的月份名(Jan、Feb等)(与%b相同)。 |
% H |
小时在24小时的格式(00 - 23)。 |
%我 |
小时在12小时的格式(01 - 12)。 |
% j |
一年中的一天(001 - 366)。 |
% k |
小时在24小时的格式,没有前导零(0 - 23)。 |
% l |
小时在12小时的格式,没有前导零(1 - 12)。 |
% m |
月数(01 - 12)。 |
% M |
分钟(00 - 59)。 |
% n |
插入一个换行符。 |
% p |
AM / PM指标。 |
r % |
特定于地区的“子午线”格式的时间。默认“C”语言环境中的“meridian”格式是“%I:%M:%S %p”。 |
R % |
时间% H: % M。 |
% s |
从纪元算起的秒数,用十进制整数表示。 |
% S |
秒(00 - 59)。 |
% t |
插入一个标签。 |
% T |
时间% H: % M: % S。 |
% u |
工作日数(周一= 1,周日= 7)。 |
% U |
一年中第一周(00 - 52),星期日是一周的第一天。 |
% V |
根据ISO-8601规则,一年中的一周。某一年的第一周是包含1月4日的那一周。 |
% w |
工作日数(星期日= 0,星期六= 6)。 |
% W |
一年中的第一周(00 - 52),星期一是一周的第一天。 |
% x |
特定日期格式。UNIX/Mac的默认“C”语言环境中的日期格式是“%m/%d/%y”。在Windows上,此值是特定于区域的短日期格式,在区域选项控制面板设置中指定。 |
% X |
特定于区域设置的24小时时间格式。在UNIX/Mac的默认“C”区域设置中,24小时的格式为%h:%m:%s。在Windows上,此值是在“区域选项”控制面板设置中指定的特定于区域设置的时间格式。 |
%是的 |
无世纪的年份(00-99)。 |
%是的 |
年与世纪(例如1990年) |
%Z轴 |
时区名称。 |
自动检测
使用自动检测时:
- 假定源日期是标准日期和/或时间字符串,其中可以包括标准时区助记符。如果只指定一个时间,则假定当前日期。如果字符串不包含时区助记符,则假定为本地时区。
- 在诸如10/11/99这样的数字日期中,第一个数字总是被解释为月份。(所以给出的日期是10月11日,而不是11月10日。)A date such as 13/1/05 will therefore produce an error, because 13 is an invalid month.如果已知日期为年月日,则源日期格式应使用参数将格式指定为%d/%m/%y。
- 每个日期都是在一个特性一个特性的基础上处理的;没有尝试确定所有输入之间的公共格式。
- 相对日期:DateFormatter可以接受相对日期作为输入字符串。例如,如果今天是星期一,2010年10月25日,它可以转换下星期四“2010年- 10月28日三年前“2007年- 10月25日”。请参阅下面的FME知识中心链接以获得工作空间示例。
- 如果源属性是一个14位数字并且源日期格式被设置为未知-自动检测,其格式将被解释为YYYYMMDDHHMMSS,由Oracle reader格式化。
- 源数据可以由以下类型的零个或多个规范组成:
类型 | 说明 |
---|---|
时间 | 每天的时间。可接受的格式有: hh[:mm[:ss][子午线][区域] HHMM[子午线][区域] 如果没有指定子午线,则在24小时时钟上解释hh。 警告:小于24的整数将被解释为小时,日期假定为今天的日期。因此,输入“0”表示“今天午夜”。如果认为零值无效,则必须使用测试人员在到达DateFormatter之前。 |
日期 | 带有可选年份的特定月份和日期。可接受的格式为: 年月日 月日[年] 年月日 日(如星期一) 默认年份为当前年份。如果年份小于100,我们将00-68年视为2000-2068年,将69-99年视为1969-1999年。 注意:一些旧的unix和windows平台不能代表38-70年,因此如果使用这些年,可能会导致错误。 |
ISO 8601时间点 | ISO 8601时间点规范,如yyyymmddthhmms,其中t是文本t、yyyymmdd hhmms或yyymmddthh:mm:ss。 注意:如果时区信息不是日期/时间规范的一部分,则输出可能因本地时区而异。 |
相对时间 | 相对于当前时间的规范。格式是数字单位。可接受的单位为年;两周;月;周;天;小时;分(或分);秒(或秒)。 单位可以指定为单数或复数,如在3周内。这些修饰语也可以指定为:明天;昨天;今天;现在;最后;下一个;以前。 实际日期按以下步骤计算。首先,处理和转换任何绝对日期和/或时间。以该时间为基础,添加星期几规范。接下来,使用相关规范。如果指定了日期或日期,并且没有给出绝对或相对时间,则使用午夜。最后,应用修正,以便在考虑夏时制时间差后生成一天中正确的时间,并且在从长月底到短月底时给出正确的日期。夏令时校正仅在以天或天以上为单位指定相对时间时应用,即天、周、两周、月或年。 |
编辑变压器参数
使用一组菜单选项,可以通过引用工作空间中的其他元素来分配transformer参数。更高级的功能,如高级编辑器和算术编辑器,也可以在一些转换器中使用。要访问这些选项的菜单,请单击在可适用的参数旁边。有关更多信息,请参见变压器参数菜单选项。
变压器的分类
搜索FME知识中心
有关此变压器的示例和信息,请参阅FME知识中心。