package org.jabref.logic.layout.format;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import org.jabref.logic.layout.LayoutFormatter;
/**
* Inserts the current date (the time a database is being exported).
*
* <p>If a fieldText is given, it must be a valid {@link DateTimeFormatter} pattern.
* If none is given, the format pattern will be <code>yyyy-MM-dd hh:mm:ss z</code>.
* This follows ISO-8601. Reason: <a href="https://xkcd.com/1179/">https://xkcd.com/1179/</a>.</p>
*
* @author andreas_sf at rudert-home dot de
*/
public class CurrentDate implements LayoutFormatter {
// default time stamp follows ISO-8601. Reason: https://xkcd.com/1179/
private static final String DEFAULT_FORMAT = "yyyy-MM-dd hh:mm:ss z";
/*
* (non-Javadoc)
* @see org.jabref.export.layout.LayoutFormatter#format(java.lang.String)
*/
@Override
public String format(String fieldText) {
String format = CurrentDate.DEFAULT_FORMAT;
if ((fieldText != null) && !fieldText.trim().isEmpty()) {
format = fieldText;
}
return ZonedDateTime.now().format(DateTimeFormatter.ofPattern(format));
}
}