-
FEATURED COMPONENTS
First time here? Check out the FAQ!
The standard ZK datebox adds 1900 to the year part when the year<100. Is this a bug?
This behavior can be reproduced with the code fragment below:
<?xml version="1.0" encoding="UTF-8"?>
<zk>
<zscript><![CDATA[
import java.text.SimpleDateFormat;
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date dateYearAfter100= formatter.parse("2010-10-25");
Date dateYearBefore100= formatter.parse("0080-10-25");
]]></zscript>
<label value="${dateYearAfter100.toString()}"/>
<datebox value="${dateYearAfter100}" readonly="true"/>
<label value="${dateYearBefore100.toString()}"/>
<datebox value="${dateYearBefore100}" readonly="true"/>
</zk>
Darksu
Hello BasClaessenStedin,
It has to do with the Java Date implementation as shown from the official documentation below:
http://docs.oracle.com/javase/6/docs/api/java/util/Date.html#getYear(%29))
A year y is represented by the integer y - 1900
Best Regards,
Darksu
Hi Darksu,
A date with a year that is equal to 101 displays correctly. Can you explain that behaviour?
Kind regards,
Bas
<?xml version="1.0" encoding="UTF-8"?>
<zk>
<zscript><![CDATA[
import java.text.SimpleDateFormat;
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date dateYearAfter100= formatter.parse("2010-10-25");
Date dateYearBefore100= formatter.parse("0080-10-25");
Date dateYear101= formatter.parse("0101-10-25");
]]></zscript>
<label value="${dateYearAfter100.toString()}"/>
<datebox value="${dateYearAfter100}" readonly="true"/>
<label value="${dateYearBefore100.toString()}"/>
<datebox value="${dateYearBefore100}" readonly="true"/>
<label value="${dateYear101.toString()}"/>
<datebox value="${dateYear101}" readonly="true"/>
</zk>
Asked: 2016-02-10 14:29:10 +0800
Seen: 15 times
Last updated: Feb 15 '16