You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pig.apache.org by "Michael Brauwerman (JIRA)" <ji...@apache.org> on 2010/12/23 22:13:46 UTC
[jira] Updated: (PIG-1781) Piggybank: ISOToDay disregards timezone
(should use ISODateTimeFormat. instead of DateTime to parse)
[ https://issues.apache.org/jira/browse/PIG-1781?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Brauwerman updated PIG-1781:
------------------------------------
Affects Version/s: (was: 0.9.0)
Release Note:
in UDFs in org.apache.pig.piggybank.test.evaluation.datetime.truncate, add support for non-UTC timezones in ISO 8601 datetime strings,
Status: Patch Available (was: Open)
This patch file was generated by "cd contrib/piggybank/java && svn diff". I do not know if that is the desired format.
This is a patch against trunk.
Notes on the code:
* Tests included for logic change, new feature (non-UTC support), and new class's methods.
* In addition to fixing the bug, I refactored a bit of common code into a new class ISOHelper.
* Whitespace is a bit funky, because I made the changes in XCode, not Eclipse.
* It might work well against 0.8.0 as well. At a glance, I didn't see code changes in the affected classes.
* Example code (in the comments) was *not* updated to include examples of non-UTC usage.
> Piggybank: ISOToDay disregards timezone (should use ISODateTimeFormat. instead of DateTime to parse)
> ----------------------------------------------------------------------------------------------------
>
> Key: PIG-1781
> URL: https://issues.apache.org/jira/browse/PIG-1781
> Project: Pig
> Issue Type: Bug
> Affects Versions: 0.8.0
> Reporter: Michael Brauwerman
> Attachments: svn.diff
>
>
> (Apologies if this is the wrong place to file Piggybank bugs)
> Bug in http://svn.apache.org/viewvc/pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/datetime/truncate/ISOToDay.java?view=markup
> and other http://svn.apache.org/viewvc/pig/trunk/contrib/piggybank/java/src/main/java/org/apache/pig/piggybank/evaluation/datetime/truncate/ classes that copy-paste the same code.
> These classes parse dates like so:
> DateTimeZone.setDefault(DateTimeZone.UTC);
> DateTime dt = new DateTime((String)input.get(0).toString());
> This has two problems:
> (1) It messes up JVM static state by changing the DateTimeZone default time zone.
> (2) It ignore timezone information in the input string, so times like "2009-12-09T23:59:59-0800" get truncated to "2009-12-10T00:00:00Z", which is the wrong day of year.
> Instead, they should use something like this, which respects the input timezone and does not modify any global state:
> DateTime dt ISODateTimeFormat.dateTime().withOffsetParsed().parseDateTime(isoDateString);
> I have not provided a patch, because I'm not really set up to hack on Piggybank locally.
> As a workaround, I am copy-pasting the classes into my own packages, and making the desired change.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.