📄 iso8601sqltimestampconverter.java
字号:
package com.thoughtworks.xstream.converters.extended;import java.sql.Timestamp;import java.util.Date;/** * A SqlTimestampConverter conforming to the ISO8601 standard. * http://www.iso.ch/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=26780 * * @author Jörg Schaible * @since 1.2 */public class ISO8601SqlTimestampConverter extends ISO8601DateConverter { final static String PADDING = "000000000"; public boolean canConvert(Class type) { return type.equals(Timestamp.class); } protected Object fromString(String str) { final int idxFraction = str.lastIndexOf('.'); int nanos = 0; if (idxFraction > 0) { int idx; for (idx = idxFraction + 1; Character.isDigit(str.charAt(idx)); ++idx) ; nanos = Integer.parseInt(str.substring(idxFraction + 1, idx)); str = str.substring(0, idxFraction) + str.substring(idx); } final Date date = (Date)super.fromString(str); final Timestamp timestamp = new Timestamp(date.getTime()); timestamp.setNanos(nanos); return timestamp; } protected String toString(Object obj) { final Timestamp timestamp = (Timestamp)obj; String str = super.toString(new Date((timestamp.getTime() / 1000) * 1000)); final String nanos = String.valueOf(timestamp.getNanos()); final int idxFraction = str.lastIndexOf('.'); str = str.substring(0, idxFraction + 1) + PADDING.substring(nanos.length()) + nanos + str.substring(idxFraction + 4); return str; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -