| 609 | * @see #print(TemporalFormatter) |
| 610 | */ |
| 611 | @Override |
| 612 | public String toString() { |
| 613 | |
| 614 | StringBuilder sb = new StringBuilder(40); |
| 615 | sb.append(this.timestamp.getCalendarDate()); |
| 616 | sb.append('T'); |
| 617 | int hour = this.timestamp.getHour(); |
| 618 | if (hour < 10) { |
| 619 | sb.append('0'); |
| 620 | } |
| 621 | sb.append(hour); |
| 622 | sb.append(':'); |
| 623 | int minute = this.timestamp.getMinute(); |
| 624 | if (minute < 10) { |
| 625 | sb.append('0'); |
| 626 | } |
| 627 | sb.append(minute); |
| 628 | sb.append(':'); |
| 629 | if (this.isLeapSecond()) { |
| 630 | sb.append("60"); |
| 631 | } else { |
| 632 | int second = this.timestamp.getSecond(); |
| 633 | if (second < 10) { |
| 634 | sb.append('0'); |
| 635 | } |
| 636 | sb.append(second); |
| 637 | } |
| 638 | int n = this.timestamp.getNanosecond(); |
| 639 | if (n != 0) { |
| 640 | PlainTime.printNanos(sb, n); |
| 641 | } |
| 642 | sb.append(this.getOffset()); |
| 643 | TZID tzid = this.getTimezone(); |
| 644 | boolean offset = (tzid instanceof ZonalOffset); |
| 645 | |
| 646 | if (!offset) { |
| 647 | sb.append('['); |
| 648 | sb.append(tzid.canonical()); |
| 649 | sb.append(']'); |
| 650 | } |
| 651 | |
| 652 | return sb.toString(); |
| 653 | |
| 654 | } |
| 655 | |
| 656 | @Override |
| 657 | public ZonedDateTime toTemporalAccessor() { |