Ich verwende Apache POI, um jede Formelzelle einer Arbeitsmappe zu bewerten. Wenn eine Zelle einen Aufruf der Standard-Excel-Funktion NOW() enthält, wird sie von Poi korrekt ausgewertet und ersetzt den Anruf durch die aktuelle Zeit - formatiert in der Standardzeitzone der VM. Ich möchte diese Zeitzone anpassen. Gibt es eine Möglichkeit, die Zeitzone von DateUtil zu ändern?Apache Poi Standardzeitzone
ich den Code der NOW-Implementierung in 3,14-Beta1 gefunden, lege ich es als Referenz:
/**
* Implementation of Excel NOW() Function
*
* @author Frank Taffelt
*/
public final class Now extends Fixed0ArgFunction {
public ValueEval evaluate(int srcRowIndex, int srcColumnIndex) {
Date now = new Date(System.currentTimeMillis());
return new NumberEval(DateUtil.getExcelDate(now));
}
}
Schauen Sie in org.apache.poi.util.LocaleUtil.setUserTimeZone() ', das von' DateUtil' verwendet wird. Dies muss pro Thread eingestellt werden. – kiwiwings
Vielen Dank, das ist die Antwort, nach der ich gesucht habe. Warum hast du es nicht als Antwort gepostet? – Mathis