final class java.time.format.DateTimeFormatterBuilder$InstantPrinterParser implements java.time.format.DateTimeFormatterBuilder$DateTimePrinterParser
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: java.time.format.DateTimeFormatterBuilder$InstantPrinterParser
super_class: java.lang.Object
{
private static final long SECONDS_PER_10000_YEARS;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 315569520000
private static final long SECONDS_0000_TO_1970;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 62167219200
private final int fractionalDigits;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iload 1
putfield java.time.format.DateTimeFormatterBuilder$InstantPrinterParser.fractionalDigits:I
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/time/format/DateTimeFormatterBuilder$InstantPrinterParser;
0 3 1 fractionalDigits I
MethodParameters:
Name Flags
fractionalDigits
public boolean format(java.time.format.DateTimePrintContext, java.lang.StringBuilder);
descriptor: (Ljava/time/format/DateTimePrintContext;Ljava/lang/StringBuilder;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=16, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getstatic java.time.temporal.ChronoField.INSTANT_SECONDS:Ljava/time/temporal/ChronoField;
invokevirtual java.time.format.DateTimePrintContext.getValue:(Ljava/time/temporal/TemporalField;)Ljava/lang/Long;
astore 3
start local 3 1: aconst_null
astore 4
start local 4 2: aload 1
invokevirtual java.time.format.DateTimePrintContext.getTemporal:()Ljava/time/temporal/TemporalAccessor;
getstatic java.time.temporal.ChronoField.NANO_OF_SECOND:Ljava/time/temporal/ChronoField;
invokeinterface java.time.temporal.TemporalAccessor.isSupported:(Ljava/time/temporal/TemporalField;)Z
ifeq 4
3: aload 1
invokevirtual java.time.format.DateTimePrintContext.getTemporal:()Ljava/time/temporal/TemporalAccessor;
getstatic java.time.temporal.ChronoField.NANO_OF_SECOND:Ljava/time/temporal/ChronoField;
invokeinterface java.time.temporal.TemporalAccessor.getLong:(Ljava/time/temporal/TemporalField;)J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
astore 4
4: StackMap locals: java.lang.Long java.lang.Long
StackMap stack:
aload 3
ifnonnull 6
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.lang.Long.longValue:()J
lstore 5
start local 5 7: getstatic java.time.temporal.ChronoField.NANO_OF_SECOND:Ljava/time/temporal/ChronoField;
aload 4
ifnull 8
aload 4
invokevirtual java.lang.Long.longValue:()J
goto 9
StackMap locals: java.time.format.DateTimeFormatterBuilder$InstantPrinterParser java.time.format.DateTimePrintContext java.lang.StringBuilder java.lang.Long java.lang.Long long
StackMap stack: java.time.temporal.ChronoField
8: lconst_0
StackMap locals: java.time.format.DateTimeFormatterBuilder$InstantPrinterParser java.time.format.DateTimePrintContext java.lang.StringBuilder java.lang.Long java.lang.Long long
StackMap stack: java.time.temporal.ChronoField long
9: invokevirtual java.time.temporal.ChronoField.checkValidIntValue:(J)I
istore 7
start local 7 10: lload 5
ldc -62167219200
lcmp
iflt 21
11: lload 5
ldc 315569520000
lsub
ldc 62167219200
ladd
lstore 8
start local 8 12: lload 8
ldc 315569520000
invokestatic java.lang.Math.floorDiv:(JJ)J
lconst_1
ladd
lstore 10
start local 10 13: lload 8
ldc 315569520000
invokestatic java.lang.Math.floorMod:(JJ)J
lstore 12
start local 12 14: lload 12
ldc 62167219200
lsub
iconst_0
getstatic java.time.ZoneOffset.UTC:Ljava/time/ZoneOffset;
invokestatic java.time.LocalDateTime.ofEpochSecond:(JILjava/time/ZoneOffset;)Ljava/time/LocalDateTime;
astore 14
start local 14 15: lload 10
lconst_0
lcmp
ifle 17
16: aload 2
bipush 43
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
lload 10
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
pop
17: StackMap locals: java.time.format.DateTimeFormatterBuilder$InstantPrinterParser java.time.format.DateTimePrintContext java.lang.StringBuilder java.lang.Long java.lang.Long long int long long long java.time.LocalDateTime
StackMap stack:
aload 2
aload 14
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
18: aload 14
invokevirtual java.time.LocalDateTime.getSecond:()I
ifne 37
19: aload 2
ldc ":00"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 14 end local 12 end local 10 end local 8 20: goto 37
21: StackMap locals: java.time.format.DateTimeFormatterBuilder$InstantPrinterParser java.time.format.DateTimePrintContext java.lang.StringBuilder java.lang.Long java.lang.Long long int
StackMap stack:
lload 5
ldc 62167219200
ladd
lstore 8
start local 8 22: lload 8
ldc 315569520000
ldiv
lstore 10
start local 10 23: lload 8
ldc 315569520000
lrem
lstore 12
start local 12 24: lload 12
ldc 62167219200
lsub
iconst_0
getstatic java.time.ZoneOffset.UTC:Ljava/time/ZoneOffset;
invokestatic java.time.LocalDateTime.ofEpochSecond:(JILjava/time/ZoneOffset;)Ljava/time/LocalDateTime;
astore 14
start local 14 25: aload 2
invokevirtual java.lang.StringBuilder.length:()I
istore 15
start local 15 26: aload 2
aload 14
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
27: aload 14
invokevirtual java.time.LocalDateTime.getSecond:()I
ifne 29
28: aload 2
ldc ":00"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
29: StackMap locals: java.time.format.DateTimeFormatterBuilder$InstantPrinterParser java.time.format.DateTimePrintContext java.lang.StringBuilder java.lang.Long java.lang.Long long int long long long java.time.LocalDateTime int
StackMap stack:
lload 10
lconst_0
lcmp
ifge 37
30: aload 14
invokevirtual java.time.LocalDateTime.getYear:()I
sipush -10000
if_icmpne 33
31: aload 2
iload 15
iload 15
iconst_2
iadd
lload 10
lconst_1
lsub
invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.replace:(IILjava/lang/String;)Ljava/lang/StringBuilder;
pop
32: goto 37
StackMap locals:
StackMap stack:
33: lload 12
lconst_0
lcmp
ifne 36
34: aload 2
iload 15
lload 10
invokevirtual java.lang.StringBuilder.insert:(IJ)Ljava/lang/StringBuilder;
pop
35: goto 37
36: StackMap locals:
StackMap stack:
aload 2
iload 15
iconst_1
iadd
lload 10
invokestatic java.lang.Math.abs:(J)J
invokevirtual java.lang.StringBuilder.insert:(IJ)Ljava/lang/StringBuilder;
pop
end local 15 end local 14 end local 12 end local 10 end local 8 37: StackMap locals: java.time.format.DateTimeFormatterBuilder$InstantPrinterParser java.time.format.DateTimePrintContext java.lang.StringBuilder java.lang.Long java.lang.Long long int
StackMap stack:
aload 0
getfield java.time.format.DateTimeFormatterBuilder$InstantPrinterParser.fractionalDigits:I
ifge 38
iload 7
ifgt 39
StackMap locals:
StackMap stack:
38: aload 0
getfield java.time.format.DateTimeFormatterBuilder$InstantPrinterParser.fractionalDigits:I
ifle 52
39: StackMap locals:
StackMap stack:
aload 2
bipush 46
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
40: ldc 100000000
istore 8
start local 8 41: iconst_0
istore 9
start local 9 42: goto 48
43: StackMap locals: int int
StackMap stack:
iload 7
iload 8
idiv
istore 10
start local 10 44: aload 2
iload 10
bipush 48
iadd
i2c
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
45: iload 7
iload 10
iload 8
imul
isub
istore 7
46: iload 8
bipush 10
idiv
istore 8
end local 10 47: iinc 9 1
48: StackMap locals:
StackMap stack:
aload 0
getfield java.time.format.DateTimeFormatterBuilder$InstantPrinterParser.fractionalDigits:I
iconst_m1
if_icmpne 49
iload 7
ifgt 43
49: StackMap locals:
StackMap stack:
aload 0
getfield java.time.format.DateTimeFormatterBuilder$InstantPrinterParser.fractionalDigits:I
bipush -2
if_icmpne 50
iload 7
ifgt 43
iload 9
iconst_3
irem
ifne 43
50: StackMap locals:
StackMap stack:
iload 9
aload 0
getfield java.time.format.DateTimeFormatterBuilder$InstantPrinterParser.fractionalDigits:I
51: if_icmplt 43
end local 9 end local 8 52: StackMap locals:
StackMap stack:
aload 2
bipush 90
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
53: iconst_1
ireturn
end local 7 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 54 0 this Ljava/time/format/DateTimeFormatterBuilder$InstantPrinterParser;
0 54 1 context Ljava/time/format/DateTimePrintContext;
0 54 2 buf Ljava/lang/StringBuilder;
1 54 3 inSecs Ljava/lang/Long;
2 54 4 inNanos Ljava/lang/Long;
7 54 5 inSec J
10 54 7 inNano I
12 20 8 zeroSecs J
13 20 10 hi J
14 20 12 lo J
15 20 14 ldt Ljava/time/LocalDateTime;
22 37 8 zeroSecs J
23 37 10 hi J
24 37 12 lo J
25 37 14 ldt Ljava/time/LocalDateTime;
26 37 15 pos I
41 52 8 div I
42 52 9 i I
44 47 10 digit I
MethodParameters:
Name Flags
context
buf
public int parse(java.time.format.DateTimeParseContext, java.lang.CharSequence, int);
descriptor: (Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=24, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield java.time.format.DateTimeFormatterBuilder$InstantPrinterParser.fractionalDigits:I
ifge 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield java.time.format.DateTimeFormatterBuilder$InstantPrinterParser.fractionalDigits:I
StackMap locals:
StackMap stack: int
2: istore 4
start local 4 3: aload 0
getfield java.time.format.DateTimeFormatterBuilder$InstantPrinterParser.fractionalDigits:I
ifge 4
bipush 9
goto 5
StackMap locals: int
StackMap stack:
4: aload 0
getfield java.time.format.DateTimeFormatterBuilder$InstantPrinterParser.fractionalDigits:I
StackMap locals:
StackMap stack: int
5: istore 5
start local 5 6: new java.time.format.DateTimeFormatterBuilder
dup
invokespecial java.time.format.DateTimeFormatterBuilder.<init>:()V
7: getstatic java.time.format.DateTimeFormatter.ISO_LOCAL_DATE:Ljava/time/format/DateTimeFormatter;
invokevirtual java.time.format.DateTimeFormatterBuilder.append:(Ljava/time/format/DateTimeFormatter;)Ljava/time/format/DateTimeFormatterBuilder;
bipush 84
invokevirtual java.time.format.DateTimeFormatterBuilder.appendLiteral:(C)Ljava/time/format/DateTimeFormatterBuilder;
8: getstatic java.time.temporal.ChronoField.HOUR_OF_DAY:Ljava/time/temporal/ChronoField;
iconst_2
invokevirtual java.time.format.DateTimeFormatterBuilder.appendValue:(Ljava/time/temporal/TemporalField;I)Ljava/time/format/DateTimeFormatterBuilder;
bipush 58
invokevirtual java.time.format.DateTimeFormatterBuilder.appendLiteral:(C)Ljava/time/format/DateTimeFormatterBuilder;
9: getstatic java.time.temporal.ChronoField.MINUTE_OF_HOUR:Ljava/time/temporal/ChronoField;
iconst_2
invokevirtual java.time.format.DateTimeFormatterBuilder.appendValue:(Ljava/time/temporal/TemporalField;I)Ljava/time/format/DateTimeFormatterBuilder;
bipush 58
invokevirtual java.time.format.DateTimeFormatterBuilder.appendLiteral:(C)Ljava/time/format/DateTimeFormatterBuilder;
10: getstatic java.time.temporal.ChronoField.SECOND_OF_MINUTE:Ljava/time/temporal/ChronoField;
iconst_2
invokevirtual java.time.format.DateTimeFormatterBuilder.appendValue:(Ljava/time/temporal/TemporalField;I)Ljava/time/format/DateTimeFormatterBuilder;
11: getstatic java.time.temporal.ChronoField.NANO_OF_SECOND:Ljava/time/temporal/ChronoField;
iload 4
iload 5
iconst_1
invokevirtual java.time.format.DateTimeFormatterBuilder.appendFraction:(Ljava/time/temporal/TemporalField;IIZ)Ljava/time/format/DateTimeFormatterBuilder;
12: bipush 90
invokevirtual java.time.format.DateTimeFormatterBuilder.appendLiteral:(C)Ljava/time/format/DateTimeFormatterBuilder;
13: invokevirtual java.time.format.DateTimeFormatterBuilder.toFormatter:()Ljava/time/format/DateTimeFormatter;
iconst_0
invokevirtual java.time.format.DateTimeFormatter.toPrinterParser:(Z)Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;
14: astore 6
start local 6 15: aload 1
invokevirtual java.time.format.DateTimeParseContext.copy:()Ljava/time/format/DateTimeParseContext;
astore 7
start local 7 16: aload 6
aload 7
aload 2
iload 3
invokevirtual java.time.format.DateTimeFormatterBuilder$CompositePrinterParser.parse:(Ljava/time/format/DateTimeParseContext;Ljava/lang/CharSequence;I)I
istore 8
start local 8 17: iload 8
ifge 19
18: iload 8
ireturn
19: StackMap locals: java.time.format.DateTimeFormatterBuilder$InstantPrinterParser java.time.format.DateTimeParseContext java.lang.CharSequence int int int java.time.format.DateTimeFormatterBuilder$CompositePrinterParser java.time.format.DateTimeParseContext int
StackMap stack:
aload 7
getstatic java.time.temporal.ChronoField.YEAR:Ljava/time/temporal/ChronoField;
invokevirtual java.time.format.DateTimeParseContext.getParsed:(Ljava/time/temporal/TemporalField;)Ljava/lang/Long;
invokevirtual java.lang.Long.longValue:()J
lstore 9
start local 9 20: aload 7
getstatic java.time.temporal.ChronoField.MONTH_OF_YEAR:Ljava/time/temporal/ChronoField;
invokevirtual java.time.format.DateTimeParseContext.getParsed:(Ljava/time/temporal/TemporalField;)Ljava/lang/Long;
invokevirtual java.lang.Long.intValue:()I
istore 11
start local 11 21: aload 7
getstatic java.time.temporal.ChronoField.DAY_OF_MONTH:Ljava/time/temporal/ChronoField;
invokevirtual java.time.format.DateTimeParseContext.getParsed:(Ljava/time/temporal/TemporalField;)Ljava/lang/Long;
invokevirtual java.lang.Long.intValue:()I
istore 12
start local 12 22: aload 7
getstatic java.time.temporal.ChronoField.HOUR_OF_DAY:Ljava/time/temporal/ChronoField;
invokevirtual java.time.format.DateTimeParseContext.getParsed:(Ljava/time/temporal/TemporalField;)Ljava/lang/Long;
invokevirtual java.lang.Long.intValue:()I
istore 13
start local 13 23: aload 7
getstatic java.time.temporal.ChronoField.MINUTE_OF_HOUR:Ljava/time/temporal/ChronoField;
invokevirtual java.time.format.DateTimeParseContext.getParsed:(Ljava/time/temporal/TemporalField;)Ljava/lang/Long;
invokevirtual java.lang.Long.intValue:()I
istore 14
start local 14 24: aload 7
getstatic java.time.temporal.ChronoField.SECOND_OF_MINUTE:Ljava/time/temporal/ChronoField;
invokevirtual java.time.format.DateTimeParseContext.getParsed:(Ljava/time/temporal/TemporalField;)Ljava/lang/Long;
astore 15
start local 15 25: aload 7
getstatic java.time.temporal.ChronoField.NANO_OF_SECOND:Ljava/time/temporal/ChronoField;
invokevirtual java.time.format.DateTimeParseContext.getParsed:(Ljava/time/temporal/TemporalField;)Ljava/lang/Long;
astore 16
start local 16 26: aload 15
ifnull 27
aload 15
invokevirtual java.lang.Long.intValue:()I
goto 28
StackMap locals: java.time.format.DateTimeFormatterBuilder$InstantPrinterParser java.time.format.DateTimeParseContext java.lang.CharSequence int int int java.time.format.DateTimeFormatterBuilder$CompositePrinterParser java.time.format.DateTimeParseContext int long int int int int java.lang.Long java.lang.Long
StackMap stack:
27: iconst_0
StackMap locals:
StackMap stack: int
28: istore 17
start local 17 29: aload 16
ifnull 30
aload 16
invokevirtual java.lang.Long.intValue:()I
goto 31
StackMap locals: int
StackMap stack:
30: iconst_0
StackMap locals:
StackMap stack: int
31: istore 18
start local 18 32: iconst_0
istore 19
start local 19 33: iload 13
bipush 24
if_icmpne 37
iload 14
ifne 37
iload 17
ifne 37
iload 18
ifne 37
34: iconst_0
istore 13
35: iconst_1
istore 19
36: goto 40
StackMap locals: int int
StackMap stack:
37: iload 13
bipush 23
if_icmpne 40
iload 14
bipush 59
if_icmpne 40
iload 17
bipush 60
if_icmpne 40
38: aload 1
invokevirtual java.time.format.DateTimeParseContext.setParsedLeapSecond:()V
39: bipush 59
istore 17
40: StackMap locals:
StackMap stack:
lload 9
l2i
sipush 10000
irem
istore 20
start local 20 41: iload 20
iload 11
iload 12
iload 13
iload 14
iload 17
iconst_0
invokestatic java.time.LocalDateTime.of:(IIIIIII)Ljava/time/LocalDateTime;
iload 19
i2l
invokevirtual java.time.LocalDateTime.plusDays:(J)Ljava/time/LocalDateTime;
astore 23
start local 23 42: aload 23
getstatic java.time.ZoneOffset.UTC:Ljava/time/ZoneOffset;
invokevirtual java.time.LocalDateTime.toEpochSecond:(Ljava/time/ZoneOffset;)J
lstore 21
start local 21 43: lload 21
lload 9
ldc 10000
ldiv
ldc 315569520000
invokestatic java.lang.Math.multiplyExact:(JJ)J
ladd
lstore 21
end local 23 44: goto 47
end local 21 StackMap locals: java.time.format.DateTimeFormatterBuilder$InstantPrinterParser java.time.format.DateTimeParseContext java.lang.CharSequence int int int java.time.format.DateTimeFormatterBuilder$CompositePrinterParser java.time.format.DateTimeParseContext int long int int int int java.lang.Long java.lang.Long int int int int
StackMap stack: java.lang.RuntimeException
45: pop
46: iload 3
iconst_m1
ixor
ireturn
start local 21 47: StackMap locals: long
StackMap stack:
iload 8
istore 23
start local 23 48: aload 1
getstatic java.time.temporal.ChronoField.INSTANT_SECONDS:Ljava/time/temporal/ChronoField;
lload 21
iload 3
iload 23
invokevirtual java.time.format.DateTimeParseContext.setParsedField:(Ljava/time/temporal/TemporalField;JII)I
istore 23
49: aload 1
getstatic java.time.temporal.ChronoField.NANO_OF_SECOND:Ljava/time/temporal/ChronoField;
iload 18
i2l
iload 3
iload 23
invokevirtual java.time.format.DateTimeParseContext.setParsedField:(Ljava/time/temporal/TemporalField;JII)I
ireturn
end local 23 end local 21 end local 20 end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 50 0 this Ljava/time/format/DateTimeFormatterBuilder$InstantPrinterParser;
0 50 1 context Ljava/time/format/DateTimeParseContext;
0 50 2 text Ljava/lang/CharSequence;
0 50 3 position I
3 50 4 minDigits I
6 50 5 maxDigits I
15 50 6 parser Ljava/time/format/DateTimeFormatterBuilder$CompositePrinterParser;
16 50 7 newContext Ljava/time/format/DateTimeParseContext;
17 50 8 pos I
20 50 9 yearParsed J
21 50 11 month I
22 50 12 day I
23 50 13 hour I
24 50 14 min I
25 50 15 secVal Ljava/lang/Long;
26 50 16 nanoVal Ljava/lang/Long;
29 50 17 sec I
32 50 18 nano I
33 50 19 days I
41 50 20 year I
43 45 21 instantSecs J
47 50 21 instantSecs J
42 44 23 ldt Ljava/time/LocalDateTime;
48 50 23 successPos I
Exception table:
from to target type
41 44 45 Class java.lang.RuntimeException
MethodParameters:
Name Flags
context
text
position
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "Instant()"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/format/DateTimeFormatterBuilder$InstantPrinterParser;
}
SourceFile: "DateTimeFormatterBuilder.java"
NestHost: java.time.format.DateTimeFormatterBuilder
InnerClasses:
final CompositePrinterParser = java.time.format.DateTimeFormatterBuilder$CompositePrinterParser of java.time.format.DateTimeFormatterBuilder
abstract DateTimePrinterParser = java.time.format.DateTimeFormatterBuilder$DateTimePrinterParser of java.time.format.DateTimeFormatterBuilder
final InstantPrinterParser = java.time.format.DateTimeFormatterBuilder$InstantPrinterParser of java.time.format.DateTimeFormatterBuilder