org.openstreetmap.osmosis.xml.common.XmlTimestampFormat Maven / Gradle / Ivy
// This software is released into the Public Domain. See copying.txt for details.
package org.openstreetmap.osmosis.xml.common;
import java.util.Date;
import org.openstreetmap.osmosis.core.domain.common.TimestampFormat;
import org.openstreetmap.osmosis.core.time.DateFormatter;
import org.openstreetmap.osmosis.core.time.DateParser;
/**
* A timestamp format implementation for dates read and stored from osm xml
* files.
*
* @author Brett Henderson
*/
public class XmlTimestampFormat extends TimestampFormat {
private ThreadLocal dateFormatterStore;
private ThreadLocal dateParserStore;
/**
* Creates a new instance.
*/
public XmlTimestampFormat() {
dateFormatterStore = new ThreadLocal();
dateParserStore = new ThreadLocal();
}
/**
* {@inheritDoc}
*/
@Override
public String formatTimestamp(Date timestamp) {
DateFormatter dateFormatter;
dateFormatter = dateFormatterStore.get();
if (dateFormatter == null) {
dateFormatter = new DateFormatter();
dateFormatterStore.set(dateFormatter);
}
return dateFormatter.format(timestamp);
}
/**
* {@inheritDoc}
*/
@Override
public Date parseTimestamp(String timestamp) {
DateParser dateParser;
dateParser = dateParserStore.get();
if (dateParser == null) {
dateParser = new DateParser();
dateParserStore.set(dateParser);
}
return dateParser.parse(timestamp);
}
}