Apache POIを使用してワークブックのすべての数式セルを評価しています。 セルに標準のExcel関数NOW()への呼び出しが含まれている場合、Poiは正しく評価し、その呼び出しを現在の時刻に置き換えます(VMのデフォルトタイムゾーンでフォーマットされています)。私はこのタイムゾーンを調整したいと思います。 DateUtilのタイムゾーンを変更する方法はありますか?私は3.14-β1にNOW実装のコードを見つけApache Poiのデフォルトタイムゾーン
、私は参考のためにそれを添付:
/**
* 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));
}
}
'DateUtil'によって使用される' org.apache.poi.util.LocaleUtil.setUserTimeZone() 'を見てください。これはスレッドごとに設定する必要があります。 – kiwiwings
ありがとう、これは私が探していた答えです。なぜそれを答えとして掲示しなかったのですか? – Mathis