<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Converting between timezones in Talend Studio</title>
    <link>https://community.qlik.com/t5/Talend-Studio/Converting-between-timezones/m-p/2364582#M128306</link>
    <description>&lt;P&gt;@Matt Evans​&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please check https://community.talend.com/s/question/0D55b00006OYVHPCA5/how-to-keep-datetime-string-value-during-applying-the-time-zone I shared a solution to a similar problem.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope that helps.&lt;/P&gt;</description>
    <pubDate>Thu, 02 Sep 2021 18:10:35 GMT</pubDate>
    <dc:creator>root</dc:creator>
    <dc:date>2021-09-02T18:10:35Z</dc:date>
    <item>
      <title>Converting between timezones</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Converting-between-timezones/m-p/2364581#M128305</link>
      <description>&lt;P&gt;Hi could someone explain to me how i convert between timezones using Talend's built in routines?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Scenario &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am based in GMT (Talend's locale) , i have a date in Central Time (GMT-5) which i want to convert to UTC &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TalendDate.formatDateInUTC seems to always use my machine's locale. How do i tell the routine that the source locale is actually CT (or any other timezone for that matter)?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Many thanks&lt;/P&gt;</description>
      <pubDate>Fri, 15 Nov 2024 23:46:50 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Converting-between-timezones/m-p/2364581#M128305</guid>
      <dc:creator>MattE</dc:creator>
      <dc:date>2024-11-15T23:46:50Z</dc:date>
    </item>
    <item>
      <title>Re: Converting between timezones</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Converting-between-timezones/m-p/2364582#M128306</link>
      <description>&lt;P&gt;@Matt Evans​&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please check https://community.talend.com/s/question/0D55b00006OYVHPCA5/how-to-keep-datetime-string-value-during-applying-the-time-zone I shared a solution to a similar problem.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope that helps.&lt;/P&gt;</description>
      <pubDate>Thu, 02 Sep 2021 18:10:35 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Converting-between-timezones/m-p/2364582#M128306</guid>
      <dc:creator>root</dc:creator>
      <dc:date>2021-09-02T18:10:35Z</dc:date>
    </item>
    <item>
      <title>Re: Converting between timezones</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Converting-between-timezones/m-p/2364583#M128307</link>
      <description>&lt;P&gt;Thanks but i was trying to use the built in routines if possible. looking at the source code for TalendDate.formatDateInUTC why does it apply the original timezone in the last step rather than UTC? Isn't applying the local timezone rather than UTC?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="0695b00000IcKAdAAN.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/142931iE2AD670B00A989DD/image-size/large?v=v2&amp;amp;px=999" role="button" title="0695b00000IcKAdAAN.png" alt="0695b00000IcKAdAAN.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 03 Sep 2021 08:01:12 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Converting-between-timezones/m-p/2364583#M128307</guid>
      <dc:creator>MattE</dc:creator>
      <dc:date>2021-09-03T08:01:12Z</dc:date>
    </item>
    <item>
      <title>Re: Converting between timezones</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Converting-between-timezones/m-p/2364584#M128308</link>
      <description>&lt;P&gt;I'm not convinced any of the TalendDate functions with a timezone behave correctly unless I'm really not understanding something so I've written my own in Java 8 based on &lt;A href="https://mkyong.com/java/java-convert-date-and-time-between-timezone/" alt="https://mkyong.com/java/java-convert-date-and-time-between-timezone/" target="_blank"&gt;this&lt;/A&gt;. posting here in case it helps someone else. &lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;/**&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;* convertBetweenTimezones: converts a time string from one timezone to another.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;* Use the country names listed &lt;A href="https://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html" alt="https://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html" target="_blank"&gt;https://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;* or run&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;* System.out.println(ZoneId.getAvailableZoneIds()).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;* 3 letter codes you can use are UTC,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;CET&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;EET&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;Etc/GMT+3&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;Etc/GMT-6&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;GB&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;GMT&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;MET&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;NZ&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;PRC&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;ROK&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;UCT&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;UTC&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;WET&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;* {talendTypes} String&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;* {Category} User Defined&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;* {param} string("yyyy-MM-dd HH:mm:ss") input: The date string pattern to be used.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;* {param} stringDate("2015-01-22 10:15:55") input: The date as a string to be converted.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;* {param} fromTimezone("Asia/Singapore") input: The original timezone of the date as either country name "Australia/Darwin" or TZ code "ACT".&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;* {param} toTimezone("America/New_York") input: The timezone to convert the date to as either country name "Australia/Darwin" or TZ code "ACT".&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;* {example} convertBetweenTimezones("yyyy-MM-dd HH:mm:ss", "2015-01-22 10:15:55", "Asia/Singapore", "America/New_York") # "2015-01-22 09:15:55".&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;public synchronized static String convertBetweenTimezones(String pattern, String stringDate, String fromTimezone, String toTimezone) {&lt;/P&gt;&lt;P&gt; String convertedDate = "";&lt;/P&gt;&lt;P&gt; try {&lt;/P&gt;&lt;P&gt; //turn the string into a local date then apply the fromTimezone&lt;/P&gt;&lt;P&gt; LocalDateTime ldt = LocalDateTime.parse(stringDate, DateTimeFormatter.ofPattern(pattern));&lt;/P&gt;&lt;P&gt; ZoneId fromZoneId = ZoneId.of(fromTimezone);&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; //LocalDateTime + ZoneId = ZonedDateTime in source TZ&lt;/P&gt;&lt;P&gt; ZonedDateTime fromZonedDateTime = ldt.atZone(fromZoneId);&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; //convert to TZ of toTimezone&lt;/P&gt;&lt;P&gt; ZoneId toZoneId = ZoneId.of(toTimezone);&lt;/P&gt;&lt;P&gt; ZonedDateTime toDateTime = fromZonedDateTime.withZoneSameInstant(toZoneId);&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; DateTimeFormatter format = DateTimeFormatter.ofPattern(pattern);&lt;/P&gt;&lt;P&gt; convertedDate = format.format(toDateTime);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} catch (Exception e) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;throw new RuntimeException(e);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; return convertedDate;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;	}&lt;/P&gt;</description>
      <pubDate>Fri, 03 Sep 2021 10:01:47 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Converting-between-timezones/m-p/2364584#M128308</guid>
      <dc:creator>MattE</dc:creator>
      <dc:date>2021-09-03T10:01:47Z</dc:date>
    </item>
    <item>
      <title>Re: Converting between timezones</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Converting-between-timezones/m-p/2364585#M128309</link>
      <description>&lt;P&gt;Beats me why this behavior is there... &lt;/P&gt;</description>
      <pubDate>Tue, 07 Sep 2021 13:36:25 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Converting-between-timezones/m-p/2364585#M128309</guid>
      <dc:creator>root</dc:creator>
      <dc:date>2021-09-07T13:36:25Z</dc:date>
    </item>
  </channel>
</rss>

