[ 
https://issues.apache.org/jira/browse/LOG4J2-1246?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16696473#comment-16696473
 ] 

Ralph Goers edited comment on LOG4J2-1246 at 11/23/18 7:49 AM:
---------------------------------------------------------------

Gary, the easy fix for this is to create an enum in DatePatternConverter that 
is similar to FixedFormat containing the patterns you want to support. Then in 
DatePatternConverter.createNonFixedFormatter see if the passed pattern matches 
one of then enum patterns and if so pass the pattern associated with the enum 
to FastDateFormat.getInstance(). 

Although Remko mentions it above, I don't think FixedDateFormat was intended to 
be garbage free as it allocates temporary stuff in several places. But because 
it supports a limited set of patterns he was able to improve its performance. 
Since the timezone isn't one of the supported patterns I think you should be 
ignoring that class for this issue.


was (Author: [email protected]):
Gary, the easy fix for this is to create an enum in DatePatternConverter that 
is similar to FixedFormat containing the patterns you want to support. Then in 
DatePatternConverter.createNonFixedFormatter see if the passed pattern matches 
one of then enum patterns and if so pass the pattern associated with the enum 
to FastDateFormat.getInstance(). 

> PatternLayout %date conversion pattern should render time zone designator for 
> ISO-ISO8601
> -----------------------------------------------------------------------------------------
>
>                 Key: LOG4J2-1246
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1246
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Pattern Converters
>    Affects Versions: 2.4.1, 2.5
>            Reporter: Daniel Marcotte
>            Priority: Major
>
> Hi there!
> There might be a small issue with the Pattern Converters regarding Timezone 
> management: 
> http://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout
> Right now, these patterns:
> * {{"%d\{ISO8601_BASIC\}}}
> * {{%d\{ISO8601_BASIC\}\{UTC\}}}
> Give the same results:
> * {{20160104T204256,048}}
> * {{20160104T204256,048}}
> However, with a deeper look at the ISO-8601 standards, the second one with 
> {{"\{UTC\}"}} should properly add the Timezone at the end of the timestamp.
> Reference: https://en.wikipedia.org/wiki/ISO_8601#Times
> {quote}
> *UTC*
> If the time is in UTC, add a Z directly after the time without a space. Z is 
> the zone designator for the zero UTC offset. "09:30 UTC" is therefore 
> represented as "09:30Z" or "0930Z". "14:45:15 UTC" would be "14:45:15Z" or 
> "144515Z".
> UTC time is also known as 'Zulu' time, since 'Zulu' is the NATO phonetic 
> alphabet word for 'Z'.
> *Examples*
> <time>Z
> <time>±hh:mm
> <time>±hhmm
> <time>±hh
> {quote}
> As of ISO-8601, the results should be one of the following (configurable?):
> * {{20160104T204256,048Z}}
> * {{20160104T204256,048+00:00}}
> * {{20160104T204256,048+0000}}
> * {{20160104T204256,048+00}}
> Another reference: 
> http://stackoverflow.com/questions/833102/wheres-the-datetime-z-format-specifier



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to