Denes Arvay created NIFI-7996:
---------------------------------

             Summary: Conversion with ConvertRecord to avro results in invalid 
date
                 Key: NIFI-7996
                 URL: https://issues.apache.org/jira/browse/NIFI-7996
             Project: Apache NiFi
          Issue Type: Bug
            Reporter: Denes Arvay
            Assignee: Denes Arvay


Converting a date field to avro using ConvertRecord results to invalid value if 
the system's timezone's offset is negative.

System timezone: EST (UTC-5)

Input json:
{code:java}
{ "SomeLocalDate": "20170411" }
{code}
Avro schema:
{code:java}
{ "fields": [ {
       "name": "SomeLocalDate",
       "type": [ "null", { "logicalType": "date", "type": "int" } ]
  }],
 "name": "DateTest",
 "namespace": "org.apache.nifi",
 "type": "record"
}
{code}
Result:
{code:java}
$ avro-tools tojson ./est-invalid.avro
{"SomeLocalDate":{"int":17266}}
{code}
In this case the days between 1970.01.01. and 2017.04.11. is stored in the 
SomeLocalDate field (see [1]), it should be 17267 ([2]).

After investigating the issue it seems that even though {{20170411}} is parsed 
to {{2017-04-11T00:00:00 UTC}} it is converted to the system timezone 
({{2017-04-10T19:00:00 EST}}) later and its date value is used.

[1] [https://avro.apache.org/docs/1.8.0/spec.html#Date]
 [2] 
[https://www.timeanddate.com/date/durationresult.html?d1=1&m1=1&y1=1970&d2=11&m2=04&y2=2017]
  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to