private void printTo(StringBuffer buf, long instant, Chronology chrono) {
DateTimePrinter printer = requirePrinter();
chrono = selectChronology(chrono);
// Shift instant into local time (UTC) to avoid excessive offset
// calculations when printing multiple fields in a composite printer.
DateTimeZone zone = chrono.getZone();
int offset = zone.getOffset(instant);
long adjustedInstant = instant + offset;
if ((instant ^ adjustedInstant) < 0 && (instant ^ offset) >= 0) {
// Time zone offset overflow, so revert to UTC.
zone = DateTimeZone.UTC;
offset = 0;