Hi,
I have implemented the solution as below.
1. The APIM core will store all the timestamps in UTC timezone. This is
implemented by setting the default JVM time zone to UTC at core bundle
startup.
java.util.TimeZone.setDefault(java.util.TimeZone.getTimeZone("Etc/UTC"));
2. REST API accepts timestamps in ISO 8106 format which contains the time
zone information.
eg: - "2014-02-15T01:02:03Z" (Timestamp in UTC)
"2017-10-27T16:22:27.605+05:30" (Timestamp in IST)
3. When processing timestamps will be converted to UTC format.
4. When returning the timestamp values they will be converted to the
original time zone in the request. In there is no time parameter in the
request, then the timestamps will be in UTC in responses. (Returning
timestamps will also in ISO8160 format).
Regards,
Anuruddha.
On Wed, Sep 6, 2017 at 11:28 AM, Anuruddha Liyanarachchi <
[email protected]> wrote:
> Hi,
>
> @Charini,
> Thanks for the details. I will look into it.
>
> @Roshan,
> This will only affect the current application.
>
>
> On Thu, Aug 24, 2017 at 10:59 AM, roshan wijesena <[email protected]>
> wrote:
>
>> @Anuruddha, does it change the JVM default time zone to UTC? Will it
>> affect to other vendors which are installed on that JVM?
>>
>> On Wed, Aug 23, 2017 at 8:23 PM, Charini Nanayakkara <[email protected]>
>> wrote:
>>
>>> Hi,
>>>
>>> The requirement to consider time zones was encountered in the recent
>>> implementation we did for incremental processing with Siddhi as well. For
>>> this, we have used the java.time package available in java 8 [1]. The
>>> Instant class allows you to specify a time in UTC, whereas we can
>>> use ZonedDateTime class where some other time zone is concerned. I found
>>> this article [2] on Java 8 date/ time API quite useful. It allows you to
>>> easily convert to and from an epoch time as well.
>>> In incremental processing implementation, the user has the capability of
>>> giving a time in ISO-8601 format. (e.g: 2017-06-01 09:30:00 +05:30). If a
>>> user queries for data related to 2017-06-01 04:00:00 (in UTC time), it
>>> would return data that is stored for 2017-06-01 09:30:00 +05:30 as well
>>> (since it reflects the same time, but in different time zones). With the
>>> use of Java date/time API, we can easily do this matching. Hope this helps.
>>>
>>> Thanks
>>> Charini
>>>
>>>
>>> [1] https://docs.oracle.com/javase/8/docs/api/java/time/pack
>>> age-summary.html
>>> [2] https://dzone.com/articles/deeper-look-java-8-date-and
>>>
>>> On Wed, Aug 23, 2017 at 3:09 PM, Anuruddha Liyanarachchi <
>>> [email protected]> wrote:
>>>
>>>> Hi,
>>>>
>>>> As per the current implementation of C5, we are storing the timestamp
>>>> values in the APIM server's default time zone.
>>>>
>>>> We have faced many issues in the past due to the mismatch between
>>>> client browser time zone and server's time zone which results in the
>>>> display of incorrect data.
>>>>
>>>>
>>>> *Solution:*
>>>>
>>>> 1. Store date time in UTC along with the origin timezone.
>>>> UTC is the least widely used format to store times, as it does not
>>>> denote any timezone offset. This allows to purpose dates as needed
>>>> throughout the system in whatever timezone is appropriate.
>>>>
>>>> 2. Return time zones in UTC
>>>> UTC will allow API consumers the freedom to offset the date to their
>>>> local time zone.
>>>> The react applications will have to convert the time zone from UTC to
>>>> browser time zone.
>>>>
>>>>
>>>> *Implementation:*
>>>> The current implementation we are setting the time stamp as below which
>>>> returns the time in local time zone.
>>>>
>>>> Timestamp.valueOf(LocalDateTime.now());
>>>>
>>>>
>>>> We can force the JVM to use UTC at the startup using,
>>>>
>>>> TimeZone.setDefault(TimeZone.getTimeZone("Etc/UTC"));
>>>>
>>>> then Timestamp.valueOf(LocalDateTime.now()) will return time stamp in UTC.
>>>>
>>>>
>>>> Appriciate your thoughts on this.
>>>>
>>>> --
>>>> *Thanks and Regards,*
>>>> Anuruddha Lanka Liyanarachchi
>>>> Software Engineer - WSO2
>>>> Mobile : +94 (0) 712762611
>>>> Tel : +94 112 145 345
>>>> a <[email protected]>[email protected]
>>>>
>>>
>>>
>>>
>>> --
>>> *Charini Vimansha Nanayakkara*
>>> Software Engineer at WSO2
>>>
>>> Mobile: 0714126293
>>> E-mail: [email protected]
>>> Blog: http://www.charini.me/
>>>
>>> <http://wso2.com/signature>
>>>
>>> _______________________________________________
>>> Architecture mailing list
>>> [email protected]
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>
>>>
>>
>
>
> --
> *Thanks and Regards,*
> Anuruddha Lanka Liyanarachchi
> Software Engineer - WSO2
> Mobile : +94 (0) 712762611
> Tel : +94 112 145 345
> a <[email protected]>[email protected]
>
--
*Thanks and Regards,*
Anuruddha Lanka Liyanarachchi
Software Engineer - WSO2
Mobile : +94 (0) 712762611
Tel : +94 112 145 345
a <[email protected]>[email protected]
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture