You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by GitBox <gi...@apache.org> on 2022/03/22 22:38:45 UTC

[GitHub] [nifi] mattyb149 commented on a change in pull request #5888: NIFI-7230: Created toInstant() and formatInstant() EL functions

mattyb149 commented on a change in pull request #5888:
URL: https://github.com/apache/nifi/pull/5888#discussion_r832685039



##########
File path: nifi-docs/src/main/asciidoc/expression-language-guide.adoc
##########
@@ -2264,6 +2296,33 @@ chaining together the two functions: `${date:toDate('MM-dd-yyyy'):format('yyyy/M
 
 
 
+[.function]
+=== toInstant
+
+*Description*: [.description]#Converts a String or Number into an Instant data type, based on the format specified by the argument. The argument
+must be a String that is a valid Java DateTimeFormatter syntax. The Subject is expected to be a String that is formatted
+according the argument or a number which represents the datetime in milliseconds. The datetime will be evaluated using the local time zone unless
+specified in the second optional argument.#
+
+*Subject Type*: [.subject]#String or Number#
+
+*Arguments*:
+
+- [.argName]#_format_# : [.argDesc]#The current format to use when parsing the Subject, in the Java DateTimeFormatter syntax.#
+- [.argName]#_time zone_# : [.argDesc]#Optional argument that specifies the time zone to use when parsing the Subject, in the Java TimeZone syntax.#
+
+
+*Return Type*: [.returnType]#Instant#
+
+*Examples*: If the attribute "time" has the value "2014/12/31 15:36:03.264Z" then the expression `${time:toDate("yyyy/MM/dd HH:mm:ss.SSS'Z'", "GMT")}` will result in a Date data type for
+15:36:03.264 GMT on December 31, 2014.
+
+Often, this function is used in conjunction with the <<formatInstant>> function to change the format of a date/time. For example,
+if the attribute "instant" has the value "12-24-2014 12:06:59" and we want to change the format to "2014/12/24", we can do so by
+chaining together the two functions: `${date:toDate('MM-dd-yyyy HH:mm:ss'):format('yyyy/MM/dd')}`.

Review comment:
       Should this be using `toInstant()` and/or `formatInstant()`?

##########
File path: nifi-docs/src/main/asciidoc/expression-language-guide.adoc
##########
@@ -2264,6 +2296,33 @@ chaining together the two functions: `${date:toDate('MM-dd-yyyy'):format('yyyy/M
 
 
 
+[.function]
+=== toInstant
+
+*Description*: [.description]#Converts a String or Number into an Instant data type, based on the format specified by the argument. The argument
+must be a String that is a valid Java DateTimeFormatter syntax. The Subject is expected to be a String that is formatted
+according the argument or a number which represents the datetime in milliseconds. The datetime will be evaluated using the local time zone unless
+specified in the second optional argument.#
+
+*Subject Type*: [.subject]#String or Number#
+
+*Arguments*:
+
+- [.argName]#_format_# : [.argDesc]#The current format to use when parsing the Subject, in the Java DateTimeFormatter syntax.#
+- [.argName]#_time zone_# : [.argDesc]#Optional argument that specifies the time zone to use when parsing the Subject, in the Java TimeZone syntax.#
+
+
+*Return Type*: [.returnType]#Instant#
+
+*Examples*: If the attribute "time" has the value "2014/12/31 15:36:03.264Z" then the expression `${time:toDate("yyyy/MM/dd HH:mm:ss.SSS'Z'", "GMT")}` will result in a Date data type for

Review comment:
       Should this be calling `toInstant()`? and doesn't it return an Instant object (or a String made from one)?

##########
File path: nifi-docs/src/main/asciidoc/expression-language-guide.adoc
##########
@@ -2233,8 +2233,40 @@ In order to run the correct method, the parameter types must be correct. The Exp
 |============================================================================
 
 
+[[formatInstant]]
+[.function]
+=== formatInstant
+
+*Description*: [.description]#Formats a number or string as a date/time according to the format specified by the argument.
+The argument must be a String that is a valid Java DateTimeFormatter format. The Subject is expected to be a Number that
+represents the number of milliseconds since Midnight GMT on January 1, 1970 or a String with one of the following
+DateTimeFromatter syntaxes:#

Review comment:
       Typo, should be `DateTimeFormatter`

##########
File path: nifi-docs/src/main/asciidoc/expression-language-guide.adoc
##########
@@ -2233,8 +2233,40 @@ In order to run the correct method, the parameter types must be correct. The Exp
 |============================================================================
 
 
+[[formatInstant]]
+[.function]
+=== formatInstant
+
+*Description*: [.description]#Formats a number or string as a date/time according to the format specified by the argument.
+The argument must be a String that is a valid Java DateTimeFormatter format. The Subject is expected to be a Number that
+represents the number of milliseconds since Midnight GMT on January 1, 1970 or a String with one of the following
+DateTimeFromatter syntaxes:#
+
+- _ISO_OFFSET_ such as '2011-12-03T10:15:30+01:00'
+- _ISO_INSTANT_ such as '2011-12-03T10:15:30Z'
+- _RFC_1123_ such as 'Thu, 01 Dec 1994 16:00:00 GMT'
+
+*Subject Type*: [.subject]#Number#
+
+*Arguments*:
 
+- [.argName]#_format_# : [.argDesc]#The format to use in the Java DateTimeFormatter syntax#
+- [.argName]#_time zone_# : [.argDesc]#Optional argument that specifies the time zone to use (in the Java TimeZone syntax)#
 
+*Return Type*: [.returnType]#String#
+
+*Examples*: If the attribute "time" has the value "1647884009479", timeIsoOffset has the value "2022-12-03T10:15:30+01:00",
+timeIsoInstant has the value "2022-12-03T10:15:30Z" and "timeRFC1123" has the value "Thu, 01 Dec 2022 16:00:00 GMT",
+then the following Expressions will yield the following results:
+
+.format Examples
+|============================================================================
+| Expression | Value
+| `${time:formatInstant("yyyy/MM/dd HH:mm:ss.SSS\'Z'", "GMT")}` | `2022/03/21 17:33:29.479Z`
+| `${timeIsoOffset:format("yyyy/MM/dd HH:mm:ss.SSS\'Z'", "Asia/Tokyo")}` | `2022/12/03 18:15:30.000Z`

Review comment:
       Should these be calls to `formatInstant`?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@nifi.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org