From e7a2df7dda2458b78a4d5495703289d3ec31c69f Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Thu, 15 Apr 2021 22:13:09 +0000 Subject: [PATCH] [github-234] Ensure the hours position is correct. Thanks to Anthony Schott. This closes #234 git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1888804 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/ss/format/CellDateFormatter.java | 21 +++++++++++++----- .../apache/poi/ss/format/CellFormatPart.java | 8 +++++++ poi/src/main/java9/module-info.class | Bin 3387 -> 3388 bytes poi/src/test/java9/module-info.class | Bin 4134 -> 4135 bytes test-data/spreadsheet/DateFormatTests.xlsx | Bin 13322 -> 12394 bytes 5 files changed, 23 insertions(+), 6 deletions(-) diff --git a/poi/src/main/java/org/apache/poi/ss/format/CellDateFormatter.java b/poi/src/main/java/org/apache/poi/ss/format/CellDateFormatter.java index b1d7f24431..4a963d7d3d 100644 --- a/poi/src/main/java/org/apache/poi/ss/format/CellDateFormatter.java +++ b/poi/src/main/java/org/apache/poi/ss/format/CellDateFormatter.java @@ -44,7 +44,7 @@ public class CellDateFormatter extends CellFormatter { private static /* final */ CellDateFormatter SIMPLE_DATE; - private class DatePartHandler implements CellFormatPart.PartHandler { + class DatePartHandler implements CellFormatPart.PartHandler { private int mStart = -1; private int mLen; private int hStart = -1; @@ -94,7 +94,10 @@ public class CellDateFormatter extends CellFormatter { case 'y': case 'Y': mStart = -1; - if (part.length() == 3) + // See https://issues.apache.org/bugzilla/show_bug.cgi?id=53369 + if (part.length() == 1) + part = "yy"; + else if (part.length() == 3) part = "yyyy"; return part.toLowerCase(Locale.ROOT); @@ -125,6 +128,15 @@ public class CellDateFormatter extends CellFormatter { } } + public void updatePositions(int pos, int offset) { + if (pos < hStart) { + hStart += offset; + } + if (pos < mStart) { + mStart += offset; + } + } + public void finish(StringBuffer toAppendTo) { if (hStart >= 0 && !showAmPm) { for (int i = 0; i < hLen; i++) { @@ -155,10 +167,7 @@ public class CellDateFormatter extends CellFormatter { StringBuffer descBuf = CellFormatPart.parseFormat(format, CellFormatType.DATE, partHandler); partHandler.finish(descBuf); - // tweak the format pattern to pass tests on JDK 1.7, - // See https://issues.apache.org/bugzilla/show_bug.cgi?id=53369 - String ptrn = descBuf.toString().replaceAll("((y)(?!y))(?= 0) { fmt.delete(pos, pos + 2); + if (partHandler instanceof CellDateFormatter.DatePartHandler) { + CellDateFormatter.DatePartHandler datePartHandler = (CellDateFormatter.DatePartHandler) partHandler; + datePartHandler.updatePositions(pos, -2); + } } // Now the final pass for quoted chars: Replace any \u0000 with '' pos = 0; while ((pos = fmt.indexOf("\u0000", pos)) >= 0) { fmt.replace(pos, pos + 1, "''"); + if (partHandler instanceof CellDateFormatter.DatePartHandler) { + CellDateFormatter.DatePartHandler datePartHandler = (CellDateFormatter.DatePartHandler) partHandler; + datePartHandler.updatePositions(pos, 1); + } } } diff --git a/poi/src/main/java9/module-info.class b/poi/src/main/java9/module-info.class index 65a7086587a0de967df019c649f7d2b63c78f1ad..86d7379bf9e5272942ed0321816af5e1e07b7203 100644 GIT binary patch literal 3388 zcmai$_nzBC5XXNC5R+a!>Ag`xBHbkydI^CX32>0aK8*0#>FBqZ6+(Gq&^z4!VE z{J{h86g&wZM&qViE0_Cx?kj6&c6N4Vc2@uV_t)P54&l!d9yGAH61HMTO?tjEu(BDt zEnn^Tf@)~a*lpXu!YLUl1Hy-dj|d+VJ|TQc z_>Ay5;S0i-gs%u+6TTsQOZblPJ>dt!k0tz6!p|lAQo^q#{8qy6CH!GvNiISLR)=xT zv?JT8D>Dkc?BBqmEO6$uop3<6wA1=Q z14}EB9VhCDmsV6dccvfKYFb0+q>+Y^ffX}u!)ygfD~iH6Rjz^M z?1a_bhb4PhGk3u1deYrbPO&#`wGtI`V3coQPvOj=hE)xNH0g#eZ^?D5-7Vz@)tNN5 zoivOMlr_8cDB%fP3P!EmtU`H5`FvsveE5f}EaWN96cac|*x;lB(ut z6?84+HHyR9w4FFC$VYd6;Bjf_DesD+IOI&Gvj#R7#vtJiWY@T2)@tI!x7^t7jOMu~ zuxcvg4e9Q(Gx+;ivE6l+QA$UYtNT_u~&0?Xmst7H3((aWp2<#eLq zvIh2QRtI%x9qr$>C*rW}xr&eSK23Sf4o-7Ero*r?RNt?w`@@y3iqAGH^{_M4*V{q= z&>YXI|C9>Yhs+Dz?9k;Y+Y1J6Ps)b^pW$)Mjcz;cf1y~%DwWB;?}IsdSo*H;w^q}R z<~Vc?F!=kq`?mlK_{RcVgo}CjUtA)?i?HwVW(g~VD}{%# zil4x0VOdDRHNv&Rb;9++4Z@AWO~TE>EyAtBZNlxs9m1W$UBcbMJ;KX`mkX~DUMbuw zyh^xFxL;@rE#a7OTzEiuP&gqxB)nR9jqqCGb;9d~HwbSO-Xy$Pc#H6`@K)gw;cdd( zg-3;x!aIb=gvW(<3hxr$Eu0eGBfM95LI}>|Nt{9j_i;{7a;ER+HvjvNNlH{`>2107vlW7?ubut9w?%(UZ1Y_5>zM zUL!E|jO}QF)v2Z8oN6k8rKecBfH8r!UQj72Uzt^1^gTQNFJN3?JQgj^s*p@9otiEl zEFLOgxxkK;yy?~Jo*NcT&vCRF+4Oz7fRzFpbA>Ez7O+}iMOUw`qUzxS)(R{y`6>wY zF*_>hr~tXxgyU5zwp%IE=ky%8bEp_QRKNyOWH&nk1#Id*v2<9AJimY~0;}e%TCw4V z4d3^INLv!y1XhxZMiRF{F-z8C23FFv#hejeh1D>&*wUW20Cj@-7~aQW3h;_Ylhq)c|@D3R}u4AqY+ z67P=`X~ehbhq>iQmGR?Te|iG_5%p=#SqzP2Kz*KVC<-cGGfcW%Tgs_Pe3`vl6Ya0F zKDPY+3&R+`5!gR))OyF*INp6ZI30LR+tR@pz7sewARoKaeN8dWQq5*Puh!T2L11!F z!%1nB9I{-hdab_7PuX$P?Z1<83!Tv}ITO3{OV)Vb{Zq&J-YVWAn5fu`CEdE=*tpZj7#Y8zgWtT$8qTbFo9+K zYXx%^a}BdVT!;0<32bC;W*)^>`UJK!cQSV~_cAYIUcubYJish64>Auir%lA2pb@Q~nP z!Ct{5f=3092_6?bA$U^ol;CN>GlFLY&k3FvydZc{@RHzV!7GAS1+NKS7rY^OQ}CAH zZNWQ&cLnbW-WPlz_)zeX;A6ojf=>mX2|gEmA^1}8mEdc^H-c{k-wD1K{7}V@f}bk* zxq@FR__c!HD)_yEKPvds!Qr{sIan4Y&6*c`^>M!zM*;sG9LkW^M!i%+y((u=kJ{}h zOl$S1)$;3EpudM599L@5@aqna=+9_-+4$KG7LUYUlKNYMY{bv@o!N?-%^+;nl!qtO z(p>0u_L~hqoy?-x!I2Y<$yz5&J8>K(ncvVag??5Woyq*sPNOm7;AlEE(Fuc0F%B|6 z(Ov4+%-MbW)g`Z;I#{Ap+-@jb3j^24b-3NlbVD-O?{-o@(b)Pe2kT2`&RMu)QJCo` z8U6f9jfQ3@UCej-d$PoODjlEpTdm13nhr}=O}Xl^#Z|S} zZTM3TR+f$UQ+}BBw!e122Dup34s7H$I_>sM;@6`@B_7xY9m;L<__76i9-UA&)?c`& z);JgL4!T~mnfOgF^Hr@<2YPmOjo9k_f5feidx>WJn)yuZbPc9g-krMU%>hlFsU9hfvb z4ea!kJ7ULYOgEIyq?z9y%!2L;d5iL}w!L~1mFUr(9|oElMajEEaT2MLnbyt|OJk5~ z1@fAjF~<~!)0W#vyy-!mdjoFMk90#tcXc#(c#G9WM}xL~u4LY9`Z+kN=!|ZCU`Cq% zQc;>T)oPsR1?8YvL3%@-mOdzoL7N+My-cs9V$I8q>!D@p=m&~7P=iPXR*HuZhbNZC{FgrR|JO)xKb-Sg5uaEp) zsLpY~t?TVI?X~pXR=g6+OU`sWcli$L%xl!u=T4wc7M7#l!y#^Y8B;^wJNE7wEJp)H z)xqfnk7sk--P*s$cO=nN(D1cPoLMmD_WG{~cb95C8by0Q2Ag|`h+UbYt1HC9NJLmFtF9>Jd-e!*wtq(&5H@c;M*6*uEMz-~RpPf?-OWzfJ z3bws?ABXk=jz0Xme+#fce=NX3SO_d!hJ&qpF&6CwDmcVihZ-Jcc(~zW#Urppv4SHF zml__W2rSe8D#UOLj%F8*F+A4rIK$%&PcU3=c%tD7!{a;c14a8=hf!rr`#|nxSjB(QwG{EW@)6hYdFwo@2P#@La?549_>b!0huGGuB)raI*QO4NyMDn+JNWU578-D4`oHZ>ztH8OQ0Q#mrV zBU3#x^&?Y3GBqSqMRI>9)RS#0N~We{s!FD=WGYLhwq&YHroLn|529TKpWM%=Gc|c|+keLf)W&@e|KxRge tnG64sAKOQ`-*i`XBl!KGy&M literal 4134 zcmai0XLsC06nzttnDnxf-W!3CNO9s2dP#_r0D+JNLI+tI@5vHyX&}amHY}kS4DLZlX?|}-<7qq<8$WeBM77Ciz9@nsv`tAxX7BsgS zT2ZX_xk*(e6_S%(ctNe^`ZYuIz=#fKmw|vPv`i1=Ff)S+t!RI7R6LplVTD!+S}@{_ z8cjcLhG7sT%Bj#A9fYqEW2lv=p{C=sDzr|}5=1@H^xZ^b=q4)CiE#zZ*kkN9`YW_C zi)ylo4%}+Qk~RyPuN|0aE=`?BN#~_bbKlH#?UK$tVYDttsg+b7Kd3n2amW z8});6U(!V-?qj&WSkSU=_qxM$)R?481+6XXRAb6dvdmmAXk$;CTn4WcWSrg3befGu zD^hk4Ig+j}Sr~%Lt$m-M6=iO-=&lvCvaGv3!(dU@I%Y`wO{-RmRLx41*7Z=2U@}u% zC-XW%>wC{;+I1^RB;6or!&FwhmnGd;tjm08wyriwN6+FbYK2K4>DbiE4BfFHNvt7H zNxG%SGILVi*27!J#H=eXRFO{F?Zu+!MKlvv@2Wcmt?J5z-mSxNXK&tJlrJ;D!X({W zOn9ze%cl=sN%srdTs{rFm_x2_MXkslkTf*4rOoNoN0B5)(55MT#);)S7HW97xQFr~ zp1|g>7qgVw@GjH`ZF%^-4Ttp-<5rxgh9s|8GO3@uk>4xn4a<%Kty$PB8sF8W6cy_u zog<6_t$EUtln7c~nwwZ3byiI)GA3wgmqqNEPGpTsI#G-->oaRA(5rl~)F5{zJX}1} zvLH6P6}Go9h=U|6D8x~{7Lj=F>P_IFNH{7u9BWEo>N(G)3YQ!Q_Si_ zw`nDzr00qUZO%j=2dFtc(+kCd%h{*pN-qk1rmZj6 zamyQ(^hxn_|{WG9J)e)p$;)94)iV;W7T8AQ_;(@g$6m(D#& zG@IsdYaZhQ#zl-3jZ0{$#@V!-aV6twjYMnp|9aZMxQ{mB6K!GK%6I|eg^W8GO~!u4 z-Hdw}_cC6>cp2jrj8`#U!?>UE0OLW%!;IH69$~zR@n*&<_z2@;jE^&(Vtk76G~=_3&ojQr_%h?GjIT4k z$@n(oyNvHMe#rPS3))Zy3~j(r2i*1qozR9-U}yz~ zT43k}hGJl728L>2=my@OF|!E z40XZK7i?z?jnS@U44u)2(qL!}hT3504Tj=iXby(zVCW8p@?dBWhWcRW4?dMKY5?ui z8KVx+MkRnz3t&_O81(=~MSxKgU{nPdbpb|YfKeM@R0kOK0iI50=sWs>e$r>b8U5uK M-4gVhZVUS3e<1;2VgLXD diff --git a/test-data/spreadsheet/DateFormatTests.xlsx b/test-data/spreadsheet/DateFormatTests.xlsx index c6048309b8ad44e0dc33a478e025ee9212d07a97..31917ca96853c54ee329b16e1a82699e5708dbfa 100644 GIT binary patch delta 9646 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 Uye-OKp%V&7_RXS