FME_Server_Date_Format_Converter.fmw
2015 Safe Software
The "email_publisher_received" attribute contains a date which looks like:
Fri Jan 10 16:32:45 GMT-06:00 2014
This is an example on how to convert it to the standard FME Date Format for easier use within FME:
20140110163245
Convert it to FME Date Format
" POSITION="1325.99 -737" TOP_LEFT="1325.99 -737" BOTTOM_RIGHT="1325.99 -737" BOUNDING_RECT="1325.99 -737 0 -0" ORDER="5e+14" FOLLOW_ANCHOR="true" INFO_NODE="false" COLOUR="1,1,0.784314,0.192157" SIZE_POLICY="8" COMMENT_TYPE="REGULAR" ANCHORED_NODE="10">1.0encoding= US_ASCIIstandalone= 不? geometry 尺寸= 2null geometry (美元)FACTORY_DEF Creator_CLASSIC) CreationFactory FACTORY_NAME Creator_CLASSIC_Creator $(Creator_2D3D) $(Creator_COORDS) CREATE_AT_END no OUTPUT FEATURE_TYPE _____CREATED______ FACTORY_DEF * TeeFactory FACTORY_NAME Creator_Cloner INPUT FEATURE_TYPE _____CREATED______ NUMBER_OF_COPIES 1 COPY_NUMBER_ATTRIBUTE "_creation_instance" OUTPUT FEATURE_TYPE Creator_CREATED @Tcl2(Creator_CoordSysRemover) @CoordSys() fme_feature_type Creator # ------------------------------------------------------------------------- FACTORY_DEF * AttrSetFactory FACTORY_NAME AttributeCreator ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV INPUT FEATURE_TYPE Creator_CREATED ATTR date Fri Jan 10 16:32:45 GMT-06:00 2014输出输出功能_type attributecreator_output#------------------------------------------------------------------------------------------------------- TCL2 procateDement_Formatter {InvalidValue} {Set DateFormat {FME日期/时间(%Y%M%D.%h%m%s)};if {[string compare $ dateformat {fme日期/时间(%y%m%d%h%m%s)}] == 0} {set dateformat {%y%m%d%h%m%s};} elsef {[string compare $ dateformat {fme日期(%y%m%d)}] == 0} {set dateformat {%y%m%d};} elsef {[string compare $ dateformat {fme时间(%h%m%s)}] == 0} {set dateformat {%h%m%s};} elsef {[string compare $ dateformat {iso日期(%y-%m%%d)}] == 0} {set dateformat {%y-%m%d};elsef {[string compare $ dateformat {iso dateTime(%y-%m - %dt%h:%m:%s)}] == 0} {led dateformat {%y-%m%dt%h:%小姐};elsef {[string compare $ dateformat {iso time(%h:%m:%s)}] == 0} {set dateformat {%h:%m:%s};} elsef {[string compare $ dateformat {locale date(%c)}] == 0} {set dateformat {%c};}; set attrs [split {date} {,}]; foreach attr $attrs { set date [string trim [FME_GetAttribute $attr]]; set comment { Ignore the millisecond part }; regexp {^[^.]*} $date date; set dateLen [string length $date]; set srcfmt {}; if {{%a %b %d %H:%M:%S GMT-06:00 %Y} != {FME_AUTOMATIC}} { set srcfmt {%a %b %d %H:%M:%S GMT-06:00 %Y}; }; if {$dateLen > 0} { if {[string length $srcfmt] == 0} { set attrFull $attr; append attrFull .full; set fullDate [FME_GetAttribute $attrFull]; if { [string compare -length $dateLen $date $fullDate] == 0 } { set extra [string range $fullDate $dateLen end]000000; set date [string range \"$date$extra\" 0 13]; set dateLen 14 }; if {($dateLen == 14) && [regexp {^[0-9]*$} $date]} { set srcfmt %Y%m%d%H%M%S; }; }; }; set sourceFormatOpt {}; if {[string length $srcfmt] > 0} { set sourceFormatOpt \"-format {$srcfmt}\"; }; if { (0 == $dateLen) || [catch { set seconds [eval clock scan "{$date}" $sourceFormatOpt]; FME_SetAttribute $attr [clock format $seconds -format $dateFormat]; }] } { if { $invalidValue == {FME_NULL_VALUE} } { FME_SetAttributeNull $attr; } elseif { $invalidValue != {_FME_NO_OP_} } { FME_SetAttribute $attr [FME_DecodeText $invalidValue]; }; }; }; } FACTORY_DEF * TeeFactory FACTORY_NAME DateFormatter INPUT FEATURE_TYPE AttributeCreator_OUTPUT OUTPUT FEATURE_TYPE DateFormatter_OUTPUT @Tcl2("DateFormatter_formatter {_FME_NO_OP_}") # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME DateFormatter_Output_Logger INPUT FEATURE_TYPE DateFormatter_OUTPUT OUTPUT FEATURE_TYPE DateFormatter_Output_LOGGED @Log("DateFormatter_Output: Feature is:","20","20") @FeatureType(DateFormatter_Output_LOGGED) FACTORY_DEF * TeeFactory FACTORY_NAME "DateFormatter_Output LOGGED Output Nuker" INPUT FEATURE_TYPE DateFormatter_Output_LOGGED # ------------------------------------------------------------------------- FACTORY_DEF * RoutingFactory FACTORY_NAME "Destination Feature Type Routing Correlator" INPUT FEATURE_TYPE * OUTPUT ROUTED FEATURE_TYPE * @FeatureType(ENCODED,@Value(__wb_out_feat_type__)) @RemoveAttributes(__wb_out_feat_type__) OUTPUT NOT_ROUTED FEATURE_TYPE __nuke_me__ @Tcl2("FME_StatMessage 818059 [FME_GetAttribute fme_template_feature_type] 818060 818061 fme_warn") # ------------------------------------------------------------------------- FACTORY_DEF * TeeFactory FACTORY_NAME "Final Output Nuker" INPUT FEATURE_TYPE __nuke_me__