Hello, I use Ztimestamp to parse a date but the time zone offset is wrongly set: (DateAndTime readTimezoneOffsetFrom: '+0530' readStream) printString gives '0:05:00:00' instead of '0:05:30:00'. See
https://pharo.fogbugz.com/f/cases/17693/Time-offset-parsing-is-false for the DateAndTime issue. As the bug is in DateAndTime>>readOptionalSeparatorFrom: and ZTimestamp reuses the same code, I propose to apply the same patch to it. Can I have the commit access to the repo (http://smalltalkhub.com/#!/~SvenVanCaekenberghe/Neo) to submit the patch? Cheers, Vincent Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis. This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted. |
Yes I saw what you did and indeed the same fix needs to be applied to ZTimestamp. I will do it after adding some tests. Thx!
> On 25 Feb 2016, at 14:06, Blondeau Vincent <[hidden email]> wrote: > > Hello, > > I use Ztimestamp to parse a date but the time zone offset is wrongly set: > (DateAndTime readTimezoneOffsetFrom: '+0530' readStream) printString gives '0:05:00:00' instead of '0:05:30:00'. > See https://pharo.fogbugz.com/f/cases/17693/Time-offset-parsing-is-false for the DateAndTime issue. > > As the bug is in DateAndTime>>readOptionalSeparatorFrom: and ZTimestamp reuses the same code, I propose to apply the same patch to it. > Can I have the commit access to the repo (http://smalltalkhub.com/#!/~SvenVanCaekenberghe/Neo) to submit the patch? > > Cheers, > Vincent > > > > Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis. > > This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted. |
I implemented some tests for the slice. You should be able to reuse them.
> -----Message d'origine----- > De : Pharo-dev [mailto:[hidden email]] De la part de > Sven Van Caekenberghe > Envoyé : jeudi 25 février 2016 14:57 > À : Pharo Development List > Objet : Re: [Pharo-dev] ZTimestamp improvement > > Yes I saw what you did and indeed the same fix needs to be applied to > ZTimestamp. I will do it after adding some tests. Thx! > > > On 25 Feb 2016, at 14:06, Blondeau Vincent > <[hidden email]> wrote: > > > > Hello, > > > > I use Ztimestamp to parse a date but the time zone offset is wrongly set: > > (DateAndTime readTimezoneOffsetFrom: '+0530' readStream) printString > gives '0:05:00:00' instead of '0:05:30:00'. > > See https://pharo.fogbugz.com/f/cases/17693/Time-offset-parsing-is-false > for the DateAndTime issue. > > > > As the bug is in DateAndTime>>readOptionalSeparatorFrom: and > ZTimestamp reuses the same code, I propose to apply the same patch to it. > > Can I have the commit access to the repo > (http://smalltalkhub.com/#!/~SvenVanCaekenberghe/Neo) to submit the > patch? > > > > Cheers, > > Vincent > > > > > > > > Ce message et les pièces jointes sont confidentiels et réservés à l'usage > exclusif de ses destinataires. Il peut également être protégé par le secret > professionnel. Si vous recevez ce message par erreur, merci d'en avertir > immédiatement l'expéditeur et de le détruire. L'intégrité du message ne > pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra > être recherchée quant au contenu de ce message. Bien que les meilleurs > efforts soient faits pour maintenir cette transmission exempte de tout virus, > l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne > saurait être recherchée pour tout dommage résultant d'un virus transmis. > > > > This e-mail and the documents attached are confidential and intended > solely for the addressee; it may also be privileged. If you receive this e-mail in > error, please notify the sender immediately and destroy it. As its integrity > cannot be secured on the Internet, the Worldline liability cannot be triggered > for the message content. Although the sender endeavours to maintain a > computer virus-free network, the sender does not warrant that this > transmission is virus-free and will not be liable for any damages resulting > from any virus transmitted. > !!!************************************************************************************* "Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis. This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.!!!" |
Hi Vincent,
I did it almost the same, but not quite. The reason is that I use #readOptionalSeparatorFrom: in multiple places. For ZTimestamp the TZ stuff is purely optional while parsing, it always operates in UTC from then on. === Name: ZTimestamp-SvenVanCaekenberghe.54 Author: SvenVanCaekenberghe Time: 25 February 2016, 10:39:29.822907 pm UUID: 8bf489fb-268c-441a-9799-7fb5acdc3734 Ancestors: ZTimestamp-SvenVanCaekenberghe.53 Test optional timezone parsing and fix problem with minutes (thx Vincent Blonde) === ZTimestamp class>>#readTimezoneOffsetFrom: stream "Read and return an optional timezone offset in the form of [+|-]hh[separator][mm] from stream as an Integer seconds. If there is no offset, just return 0" | sign hour minute | (stream atEnd or: [ stream peekFor: $Z ]) ifTrue: [ ^ 0 ]. ^ ('+-' includes: stream peek) ifTrue: [ sign := stream next = $- ifTrue: [ -1 ] ifFalse: [ 1 ]. hour := self readInteger: 2 from: stream. ((self readOptionalSeparatorFrom: stream) notNil or: [ '0123456789' includes: stream peek ]) ifTrue: [ minute := self readInteger: 2 from: stream ] ifFalse: [ minute := 0 ]. sign * ((hour * 3600) + (minute * 60)) ] ifFalse: [ 0 ] ZTimestamp class>>#readOptionalSeparatorFrom: stream "Read an optional separator (non decimal digit) from stream and return it. Return nil if nothing was read" ^ ('0123456789' includes: stream peek) ifTrue: [ nil ] ifFalse: [ stream next ] And my test is (listing all supported variants): testOptionalTimezoneParsing #( '1969-07-20T20:17:40Z' '1969-07-20T20:17:40' '1969-07-20T20:17:40+00:00' '1969-07-20T20:17:40+00' '1969-07-20T20:17:40+0000' '1969-07-20T21:17:40+01:00' '1969-07-20T21:17:40+01' '1969-07-20T21:17:40+0100' '1969-07-20T19:17:40-01:00' '1969-07-20T19:17:40-01' '1969-07-20T19:17:40-0100' '1969-07-20T21:47:40+01:30' '1969-07-20T21:47:40+0130' '1969-07-20T18:47:40-01:30' '1969-07-20T18:47:40-0130' ) do: [ :each | self assert: (ZTimestamp fromString: each) equals: self lunarLanding ] I also saw in your code ':' includes: stream peek which is of course the same as stream peek = $: Note also that normally #peek returns nil when #atEnd, something you can use to simplify code. That is why I use the #includes: instead of #isDigit In any case, thanks for finding this. Sven > On 25 Feb 2016, at 15:07, Blondeau Vincent <[hidden email]> wrote: > > I implemented some tests for the slice. You should be able to reuse them. > >> -----Message d'origine----- >> De : Pharo-dev [mailto:[hidden email]] De la part de >> Sven Van Caekenberghe >> Envoyé : jeudi 25 février 2016 14:57 >> À : Pharo Development List >> Objet : Re: [Pharo-dev] ZTimestamp improvement >> >> Yes I saw what you did and indeed the same fix needs to be applied to >> ZTimestamp. I will do it after adding some tests. Thx! >> >>> On 25 Feb 2016, at 14:06, Blondeau Vincent >> <[hidden email]> wrote: >>> >>> Hello, >>> >>> I use Ztimestamp to parse a date but the time zone offset is wrongly set: >>> (DateAndTime readTimezoneOffsetFrom: '+0530' readStream) printString >> gives '0:05:00:00' instead of '0:05:30:00'. >>> See https://pharo.fogbugz.com/f/cases/17693/Time-offset-parsing-is-false >> for the DateAndTime issue. >>> >>> As the bug is in DateAndTime>>readOptionalSeparatorFrom: and >> ZTimestamp reuses the same code, I propose to apply the same patch to it. >>> Can I have the commit access to the repo >> (http://smalltalkhub.com/#!/~SvenVanCaekenberghe/Neo) to submit the >> patch? >>> >>> Cheers, >>> Vincent >>> >>> >>> >>> Ce message et les pièces jointes sont confidentiels et réservés à l'usage >> exclusif de ses destinataires. Il peut également être protégé par le secret >> professionnel. Si vous recevez ce message par erreur, merci d'en avertir >> immédiatement l'expéditeur et de le détruire. L'intégrité du message ne >> pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra >> être recherchée quant au contenu de ce message. Bien que les meilleurs >> efforts soient faits pour maintenir cette transmission exempte de tout virus, >> l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne >> saurait être recherchée pour tout dommage résultant d'un virus transmis. >>> >>> This e-mail and the documents attached are confidential and intended >> solely for the addressee; it may also be privileged. If you receive this e-mail in >> error, please notify the sender immediately and destroy it. As its integrity >> cannot be secured on the Internet, the Worldline liability cannot be triggered >> for the message content. Although the sender endeavours to maintain a >> computer virus-free network, the sender does not warrant that this >> transmission is virus-free and will not be liable for any damages resulting >> from any virus transmitted. >> > > > !!!************************************************************************************* > "Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis. > > This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.!!!" |
In reply to this post by Blondeau Vincent
Le 25/2/16 15:07, Blondeau Vincent a écrit : > I implemented some tests for the slice. You should be able to reuse them. So cool :) Tx vincent! > >> -----Message d'origine----- >> De : Pharo-dev [mailto:[hidden email]] De la part de >> Sven Van Caekenberghe >> Envoyé : jeudi 25 février 2016 14:57 >> À : Pharo Development List >> Objet : Re: [Pharo-dev] ZTimestamp improvement >> >> Yes I saw what you did and indeed the same fix needs to be applied to >> ZTimestamp. I will do it after adding some tests. Thx! >> >>> On 25 Feb 2016, at 14:06, Blondeau Vincent >> <[hidden email]> wrote: >>> Hello, >>> >>> I use Ztimestamp to parse a date but the time zone offset is wrongly set: >>> (DateAndTime readTimezoneOffsetFrom: '+0530' readStream) printString >> gives '0:05:00:00' instead of '0:05:30:00'. >>> See https://pharo.fogbugz.com/f/cases/17693/Time-offset-parsing-is-false >> for the DateAndTime issue. >>> As the bug is in DateAndTime>>readOptionalSeparatorFrom: and >> ZTimestamp reuses the same code, I propose to apply the same patch to it. >>> Can I have the commit access to the repo >> (http://smalltalkhub.com/#!/~SvenVanCaekenberghe/Neo) to submit the >> patch? >>> Cheers, >>> Vincent >>> >>> >>> >>> Ce message et les pièces jointes sont confidentiels et réservés à l'usage >> exclusif de ses destinataires. Il peut également être protégé par le secret >> professionnel. Si vous recevez ce message par erreur, merci d'en avertir >> immédiatement l'expéditeur et de le détruire. L'intégrité du message ne >> pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra >> être recherchée quant au contenu de ce message. Bien que les meilleurs >> efforts soient faits pour maintenir cette transmission exempte de tout virus, >> l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne >> saurait être recherchée pour tout dommage résultant d'un virus transmis. >>> This e-mail and the documents attached are confidential and intended >> solely for the addressee; it may also be privileged. If you receive this e-mail in >> error, please notify the sender immediately and destroy it. As its integrity >> cannot be secured on the Internet, the Worldline liability cannot be triggered >> for the message content. Although the sender endeavours to maintain a >> computer virus-free network, the sender does not warrant that this >> transmission is virus-free and will not be liable for any damages resulting >> from any virus transmitted. >> > > !!!************************************************************************************* > "Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité de Worldline ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis. > > This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Worldline liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.!!!" |
Free forum by Nabble | Edit this page |