public final class java.time.ZoneOffset extends java.time.ZoneId implements java.time.temporal.TemporalAccessor, java.time.temporal.TemporalAdjuster, java.lang.Comparable<java.time.ZoneOffset>, java.io.Serializable
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: java.time.ZoneOffset
super_class: java.time.ZoneId
{
private static final java.util.concurrent.ConcurrentMap<java.lang.Integer, java.time.ZoneOffset> SECONDS_CACHE;
descriptor: Ljava/util/concurrent/ConcurrentMap;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentMap<Ljava/lang/Integer;Ljava/time/ZoneOffset;>;
private static final java.util.concurrent.ConcurrentMap<java.lang.String, java.time.ZoneOffset> ID_CACHE;
descriptor: Ljava/util/concurrent/ConcurrentMap;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentMap<Ljava/lang/String;Ljava/time/ZoneOffset;>;
private static final int MAX_SECONDS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 64800
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2357656521762053153
public static final java.time.ZoneOffset UTC;
descriptor: Ljava/time/ZoneOffset;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.time.ZoneOffset MIN;
descriptor: Ljava/time/ZoneOffset;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.time.ZoneOffset MAX;
descriptor: Ljava/time/ZoneOffset;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private final int totalSeconds;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final transient java.lang.String id;
descriptor: Ljava/lang/String;
flags: (0x0092) ACC_PRIVATE, ACC_FINAL, ACC_TRANSIENT
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=0, args_size=0
0: new java.util.concurrent.ConcurrentHashMap
dup
bipush 16
ldc 0.75
iconst_4
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(IFI)V
putstatic java.time.ZoneOffset.SECONDS_CACHE:Ljava/util/concurrent/ConcurrentMap;
1: new java.util.concurrent.ConcurrentHashMap
dup
bipush 16
ldc 0.75
iconst_4
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(IFI)V
putstatic java.time.ZoneOffset.ID_CACHE:Ljava/util/concurrent/ConcurrentMap;
2: iconst_0
invokestatic java.time.ZoneOffset.ofTotalSeconds:(I)Ljava/time/ZoneOffset;
putstatic java.time.ZoneOffset.UTC:Ljava/time/ZoneOffset;
3: ldc -64800
invokestatic java.time.ZoneOffset.ofTotalSeconds:(I)Ljava/time/ZoneOffset;
putstatic java.time.ZoneOffset.MIN:Ljava/time/ZoneOffset;
4: ldc 64800
invokestatic java.time.ZoneOffset.ofTotalSeconds:(I)Ljava/time/ZoneOffset;
putstatic java.time.ZoneOffset.MAX:Ljava/time/ZoneOffset;
return
LocalVariableTable:
Start End Slot Name Signature
public static java.time.ZoneOffset of(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/time/ZoneOffset;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=6, args_size=1
start local 0 0: aload 0
ldc "offsetId"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
1: getstatic java.time.ZoneOffset.ID_CACHE:Ljava/util/concurrent/ConcurrentMap;
aload 0
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.time.ZoneOffset
astore 1
start local 1 2: aload 1
ifnull 4
3: aload 1
areturn
4: StackMap locals: java.time.ZoneOffset
StackMap stack:
aload 0
invokevirtual java.lang.String.length:()I
tableswitch { // 2 - 9
2: 5
3: 6
4: 26
5: 10
6: 14
7: 18
8: 26
9: 22
default: 26
}
5: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 0
iconst_0
invokevirtual java.lang.String.charAt:(I)C
invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "0"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
iconst_1
invokevirtual java.lang.String.charAt:(I)C
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 0
6: StackMap locals:
StackMap stack:
aload 0
iconst_1
iconst_0
invokestatic java.time.ZoneOffset.parseNumber:(Ljava/lang/CharSequence;IZ)I
istore 2
start local 2 7: iconst_0
istore 3
start local 3 8: iconst_0
istore 4
start local 4 9: goto 27
end local 4 end local 3 end local 2 10: StackMap locals:
StackMap stack:
aload 0
iconst_1
iconst_0
invokestatic java.time.ZoneOffset.parseNumber:(Ljava/lang/CharSequence;IZ)I
istore 2
start local 2 11: aload 0
iconst_3
iconst_0
invokestatic java.time.ZoneOffset.parseNumber:(Ljava/lang/CharSequence;IZ)I
istore 3
start local 3 12: iconst_0
istore 4
start local 4 13: goto 27
end local 4 end local 3 end local 2 14: StackMap locals:
StackMap stack:
aload 0
iconst_1
iconst_0
invokestatic java.time.ZoneOffset.parseNumber:(Ljava/lang/CharSequence;IZ)I
istore 2
start local 2 15: aload 0
iconst_4
iconst_1
invokestatic java.time.ZoneOffset.parseNumber:(Ljava/lang/CharSequence;IZ)I
istore 3
start local 3 16: iconst_0
istore 4
start local 4 17: goto 27
end local 4 end local 3 end local 2 18: StackMap locals:
StackMap stack:
aload 0
iconst_1
iconst_0
invokestatic java.time.ZoneOffset.parseNumber:(Ljava/lang/CharSequence;IZ)I
istore 2
start local 2 19: aload 0
iconst_3
iconst_0
invokestatic java.time.ZoneOffset.parseNumber:(Ljava/lang/CharSequence;IZ)I
istore 3
start local 3 20: aload 0
iconst_5
iconst_0
invokestatic java.time.ZoneOffset.parseNumber:(Ljava/lang/CharSequence;IZ)I
istore 4
start local 4 21: goto 27
end local 4 end local 3 end local 2 22: StackMap locals:
StackMap stack:
aload 0
iconst_1
iconst_0
invokestatic java.time.ZoneOffset.parseNumber:(Ljava/lang/CharSequence;IZ)I
istore 2
start local 2 23: aload 0
iconst_4
iconst_1
invokestatic java.time.ZoneOffset.parseNumber:(Ljava/lang/CharSequence;IZ)I
istore 3
start local 3 24: aload 0
bipush 7
iconst_1
invokestatic java.time.ZoneOffset.parseNumber:(Ljava/lang/CharSequence;IZ)I
istore 4
start local 4 25: goto 27
end local 4 end local 3 end local 2 26: StackMap locals:
StackMap stack:
new java.time.DateTimeException
dup
new java.lang.StringBuilder
dup
ldc "Invalid ID for ZoneOffset, invalid format: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.time.DateTimeException.<init>:(Ljava/lang/String;)V
athrow
start local 2 start local 3 start local 4 27: StackMap locals: int int int
StackMap stack:
aload 0
iconst_0
invokevirtual java.lang.String.charAt:(I)C
istore 5
start local 5 28: iload 5
bipush 43
if_icmpeq 30
iload 5
bipush 45
if_icmpeq 30
29: new java.time.DateTimeException
dup
new java.lang.StringBuilder
dup
ldc "Invalid ID for ZoneOffset, plus/minus not found when expected: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.time.DateTimeException.<init>:(Ljava/lang/String;)V
athrow
30: StackMap locals: int
StackMap stack:
iload 5
bipush 45
if_icmpne 32
31: iload 2
ineg
iload 3
ineg
iload 4
ineg
invokestatic java.time.ZoneOffset.ofHoursMinutesSeconds:(III)Ljava/time/ZoneOffset;
areturn
32: StackMap locals:
StackMap stack:
iload 2
iload 3
iload 4
invokestatic java.time.ZoneOffset.ofHoursMinutesSeconds:(III)Ljava/time/ZoneOffset;
areturn
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 33 0 offsetId Ljava/lang/String;
2 33 1 offset Ljava/time/ZoneOffset;
7 10 2 hours I
11 14 2 hours I
15 18 2 hours I
19 22 2 hours I
23 26 2 hours I
27 33 2 hours I
8 10 3 minutes I
12 14 3 minutes I
16 18 3 minutes I
20 22 3 minutes I
24 26 3 minutes I
27 33 3 minutes I
9 10 4 seconds I
13 14 4 seconds I
17 18 4 seconds I
21 22 4 seconds I
25 26 4 seconds I
27 33 4 seconds I
28 33 5 first C
MethodParameters:
Name Flags
offsetId
private static int parseNumber(java.lang.CharSequence, int, boolean);
descriptor: (Ljava/lang/CharSequence;IZ)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifeq 2
aload 0
iload 1
iconst_1
isub
invokeinterface java.lang.CharSequence.charAt:(I)C
bipush 58
if_icmpeq 2
1: new java.time.DateTimeException
dup
new java.lang.StringBuilder
dup
ldc "Invalid ID for ZoneOffset, colon not found when expected: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.time.DateTimeException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
iload 1
invokeinterface java.lang.CharSequence.charAt:(I)C
istore 3
start local 3 3: aload 0
iload 1
iconst_1
iadd
invokeinterface java.lang.CharSequence.charAt:(I)C
istore 4
start local 4 4: iload 3
bipush 48
if_icmplt 5
iload 3
bipush 57
if_icmpgt 5
iload 4
bipush 48
if_icmplt 5
iload 4
bipush 57
if_icmple 6
5: StackMap locals: int int
StackMap stack:
new java.time.DateTimeException
dup
new java.lang.StringBuilder
dup
ldc "Invalid ID for ZoneOffset, non numeric characters found: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.time.DateTimeException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
iload 3
bipush 48
isub
bipush 10
imul
iload 4
bipush 48
isub
iadd
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 offsetId Ljava/lang/CharSequence;
0 7 1 pos I
0 7 2 precededByColon Z
3 7 3 ch1 C
4 7 4 ch2 C
MethodParameters:
Name Flags
offsetId
pos
precededByColon
public static java.time.ZoneOffset ofHours(int);
descriptor: (I)Ljava/time/ZoneOffset;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: iload 0
iconst_0
iconst_0
invokestatic java.time.ZoneOffset.ofHoursMinutesSeconds:(III)Ljava/time/ZoneOffset;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 hours I
MethodParameters:
Name Flags
hours
public static java.time.ZoneOffset ofHoursMinutes(int, int);
descriptor: (II)Ljava/time/ZoneOffset;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 0
iload 1
iconst_0
invokestatic java.time.ZoneOffset.ofHoursMinutesSeconds:(III)Ljava/time/ZoneOffset;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 hours I
0 1 1 minutes I
MethodParameters:
Name Flags
hours
minutes
public static java.time.ZoneOffset ofHoursMinutesSeconds(int, int, int);
descriptor: (III)Ljava/time/ZoneOffset;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 0
iload 1
iload 2
invokestatic java.time.ZoneOffset.validate:(III)V
1: iload 0
iload 1
iload 2
invokestatic java.time.ZoneOffset.totalSeconds:(III)I
istore 3
start local 3 2: iload 3
invokestatic java.time.ZoneOffset.ofTotalSeconds:(I)Ljava/time/ZoneOffset;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 hours I
0 3 1 minutes I
0 3 2 seconds I
2 3 3 totalSeconds I
MethodParameters:
Name Flags
hours
minutes
seconds
public static java.time.ZoneOffset from(java.time.temporal.TemporalAccessor);
descriptor: (Ljava/time/temporal/TemporalAccessor;)Ljava/time/ZoneOffset;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
ldc "temporal"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
1: aload 0
invokestatic java.time.temporal.TemporalQueries.offset:()Ljava/time/temporal/TemporalQuery;
invokeinterface java.time.temporal.TemporalAccessor.query:(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
checkcast java.time.ZoneOffset
astore 1
start local 1 2: aload 1
ifnonnull 6
3: new java.time.DateTimeException
dup
new java.lang.StringBuilder
dup
ldc "Unable to obtain ZoneOffset from TemporalAccessor: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
4: aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " of type "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokespecial java.time.DateTimeException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: java.time.ZoneOffset
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 temporal Ljava/time/temporal/TemporalAccessor;
2 7 1 offset Ljava/time/ZoneOffset;
MethodParameters:
Name Flags
temporal
private static void validate(int, int, int);
descriptor: (III)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 0
bipush -18
if_icmplt 1
iload 0
bipush 18
if_icmple 4
1: StackMap locals:
StackMap stack:
new java.time.DateTimeException
dup
new java.lang.StringBuilder
dup
ldc "Zone offset hours not in valid range: value "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
2: ldc " is not in the range -18 to 18"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokespecial java.time.DateTimeException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
iload 0
ifle 7
5: iload 1
iflt 6
iload 2
ifge 13
6: StackMap locals:
StackMap stack:
new java.time.DateTimeException
dup
ldc "Zone offset minutes and seconds must be positive because hours is positive"
invokespecial java.time.DateTimeException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
iload 0
ifge 10
8: iload 1
ifgt 9
iload 2
ifle 13
9: StackMap locals:
StackMap stack:
new java.time.DateTimeException
dup
ldc "Zone offset minutes and seconds must be negative because hours is negative"
invokespecial java.time.DateTimeException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
iload 1
ifle 11
iload 2
iflt 12
StackMap locals:
StackMap stack:
11: iload 1
ifge 13
iload 2
ifle 13
12: StackMap locals:
StackMap stack:
new java.time.DateTimeException
dup
ldc "Zone offset minutes and seconds must have the same sign"
invokespecial java.time.DateTimeException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
iload 1
bipush -59
if_icmplt 14
iload 1
bipush 59
if_icmple 17
14: StackMap locals:
StackMap stack:
new java.time.DateTimeException
dup
new java.lang.StringBuilder
dup
ldc "Zone offset minutes not in valid range: value "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
15: iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " is not in the range -59 to 59"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
16: invokespecial java.time.DateTimeException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
iload 2
bipush -59
if_icmplt 18
iload 2
bipush 59
if_icmple 21
18: StackMap locals:
StackMap stack:
new java.time.DateTimeException
dup
new java.lang.StringBuilder
dup
ldc "Zone offset seconds not in valid range: value "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
19: iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " is not in the range -59 to 59"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
20: invokespecial java.time.DateTimeException.<init>:(Ljava/lang/String;)V
athrow
21: StackMap locals:
StackMap stack:
iload 0
invokestatic java.lang.Math.abs:(I)I
bipush 18
if_icmpne 23
iload 1
iload 2
ior
ifeq 23
22: new java.time.DateTimeException
dup
ldc "Zone offset not in valid range: -18:00 to +18:00"
invokespecial java.time.DateTimeException.<init>:(Ljava/lang/String;)V
athrow
23: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 hours I
0 24 1 minutes I
0 24 2 seconds I
MethodParameters:
Name Flags
hours
minutes
seconds
private static int totalSeconds(int, int, int);
descriptor: (III)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 0
sipush 3600
imul
iload 1
bipush 60
imul
iadd
iload 2
iadd
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 hours I
0 1 1 minutes I
0 1 2 seconds I
MethodParameters:
Name Flags
hours
minutes
seconds
public static java.time.ZoneOffset ofTotalSeconds(int);
descriptor: (I)Ljava/time/ZoneOffset;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: iload 0
ldc -64800
if_icmplt 1
iload 0
ldc 64800
if_icmple 2
1: StackMap locals:
StackMap stack:
new java.time.DateTimeException
dup
ldc "Zone offset not in valid range: -18:00 to +18:00"
invokespecial java.time.DateTimeException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 0
sipush 900
irem
ifne 11
3: iload 0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
astore 1
start local 1 4: getstatic java.time.ZoneOffset.SECONDS_CACHE:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.time.ZoneOffset
astore 2
start local 2 5: aload 2
ifnonnull 10
6: new java.time.ZoneOffset
dup
iload 0
invokespecial java.time.ZoneOffset.<init>:(I)V
astore 2
7: getstatic java.time.ZoneOffset.SECONDS_CACHE:Ljava/util/concurrent/ConcurrentMap;
aload 1
aload 2
invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: getstatic java.time.ZoneOffset.SECONDS_CACHE:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.time.ZoneOffset
astore 2
9: getstatic java.time.ZoneOffset.ID_CACHE:Ljava/util/concurrent/ConcurrentMap;
aload 2
invokevirtual java.time.ZoneOffset.getId:()Ljava/lang/String;
aload 2
invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
10: StackMap locals: java.lang.Integer java.time.ZoneOffset
StackMap stack:
aload 2
areturn
end local 2 end local 1 11: StackMap locals:
StackMap stack:
new java.time.ZoneOffset
dup
iload 0
invokespecial java.time.ZoneOffset.<init>:(I)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 totalSeconds I
4 11 1 totalSecs Ljava/lang/Integer;
5 11 2 result Ljava/time/ZoneOffset;
MethodParameters:
Name Flags
totalSeconds
private void <init>(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.time.ZoneId.<init>:()V
1: aload 0
iload 1
putfield java.time.ZoneOffset.totalSeconds:I
2: aload 0
iload 1
invokestatic java.time.ZoneOffset.buildId:(I)Ljava/lang/String;
putfield java.time.ZoneOffset.id:Ljava/lang/String;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/time/ZoneOffset;
0 4 1 totalSeconds I
MethodParameters:
Name Flags
totalSeconds
private static java.lang.String buildId(int);
descriptor: (I)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=1
start local 0 0: iload 0
ifne 2
1: ldc "Z"
areturn
2: StackMap locals:
StackMap stack:
iload 0
invokestatic java.lang.Math.abs:(I)I
istore 1
start local 1 3: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 4: iload 1
sipush 3600
idiv
istore 3
start local 3 5: iload 1
bipush 60
idiv
bipush 60
irem
istore 4
start local 4 6: aload 2
iload 0
ifge 7
ldc "-"
goto 8
StackMap locals: int int java.lang.StringBuilder int int
StackMap stack: java.lang.StringBuilder
7: ldc "+"
StackMap locals: int int java.lang.StringBuilder int int
StackMap stack: java.lang.StringBuilder java.lang.String
8: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
9: iload 3
bipush 10
if_icmpge 10
ldc "0"
goto 11
StackMap locals:
StackMap stack: java.lang.StringBuilder
10: ldc ""
StackMap locals: int int java.lang.StringBuilder int int
StackMap stack: java.lang.StringBuilder java.lang.String
11: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
12: iload 4
bipush 10
if_icmpge 13
ldc ":0"
goto 14
StackMap locals:
StackMap stack: java.lang.StringBuilder
13: ldc ":"
StackMap locals: int int java.lang.StringBuilder int int
StackMap stack: java.lang.StringBuilder java.lang.String
14: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
15: iload 1
bipush 60
irem
istore 5
start local 5 16: iload 5
ifeq 20
17: aload 2
iload 5
bipush 10
if_icmpge 18
ldc ":0"
goto 19
StackMap locals: int int java.lang.StringBuilder int int int
StackMap stack: java.lang.StringBuilder
18: ldc ":"
StackMap locals: int int java.lang.StringBuilder int int int
StackMap stack: java.lang.StringBuilder java.lang.String
19: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 5
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
20: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
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 21 0 totalSeconds I
3 21 1 absTotalSeconds I
4 21 2 buf Ljava/lang/StringBuilder;
5 21 3 absHours I
6 21 4 absMinutes I
16 21 5 absSeconds I
MethodParameters:
Name Flags
totalSeconds
public int getTotalSeconds();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.time.ZoneOffset.totalSeconds:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/ZoneOffset;
public java.lang.String getId();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.time.ZoneOffset.id:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/ZoneOffset;
public java.time.zone.ZoneRules getRules();
descriptor: ()Ljava/time/zone/ZoneRules;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic java.time.zone.ZoneRules.of:(Ljava/time/ZoneOffset;)Ljava/time/zone/ZoneRules;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/ZoneOffset;
public boolean isSupported(java.time.temporal.TemporalField);
descriptor: (Ljava/time/temporal/TemporalField;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof java.time.temporal.ChronoField
ifeq 3
1: aload 1
getstatic java.time.temporal.ChronoField.OFFSET_SECONDS:Ljava/time/temporal/ChronoField;
if_acmpne 2
iconst_1
ireturn
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 1
ifnull 4
aload 1
aload 0
invokeinterface java.time.temporal.TemporalField.isSupportedBy:(Ljava/time/temporal/TemporalAccessor;)Z
ifeq 4
iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/time/ZoneOffset;
0 5 1 field Ljava/time/temporal/TemporalField;
MethodParameters:
Name Flags
field
public java.time.temporal.ValueRange range(java.time.temporal.TemporalField);
descriptor: (Ljava/time/temporal/TemporalField;)Ljava/time/temporal/ValueRange;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial java.time.temporal.TemporalAccessor.range:(Ljava/time/temporal/TemporalField;)Ljava/time/temporal/ValueRange;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/ZoneOffset;
0 1 1 field Ljava/time/temporal/TemporalField;
MethodParameters:
Name Flags
field
public int get(java.time.temporal.TemporalField);
descriptor: (Ljava/time/temporal/TemporalField;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getstatic java.time.temporal.ChronoField.OFFSET_SECONDS:Ljava/time/temporal/ChronoField;
if_acmpne 2
1: aload 0
getfield java.time.ZoneOffset.totalSeconds:I
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof java.time.temporal.ChronoField
ifeq 4
3: new java.time.temporal.UnsupportedTemporalTypeException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported field: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.time.temporal.UnsupportedTemporalTypeException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.time.ZoneOffset.range:(Ljava/time/temporal/TemporalField;)Ljava/time/temporal/ValueRange;
aload 0
aload 1
invokevirtual java.time.ZoneOffset.getLong:(Ljava/time/temporal/TemporalField;)J
aload 1
invokevirtual java.time.temporal.ValueRange.checkValidIntValue:(JLjava/time/temporal/TemporalField;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/time/ZoneOffset;
0 5 1 field Ljava/time/temporal/TemporalField;
MethodParameters:
Name Flags
field
public long getLong(java.time.temporal.TemporalField);
descriptor: (Ljava/time/temporal/TemporalField;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getstatic java.time.temporal.ChronoField.OFFSET_SECONDS:Ljava/time/temporal/ChronoField;
if_acmpne 2
1: aload 0
getfield java.time.ZoneOffset.totalSeconds:I
i2l
lreturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof java.time.temporal.ChronoField
ifeq 4
3: new java.time.temporal.UnsupportedTemporalTypeException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported field: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.time.temporal.UnsupportedTemporalTypeException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 1
aload 0
invokeinterface java.time.temporal.TemporalField.getFrom:(Ljava/time/temporal/TemporalAccessor;)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/time/ZoneOffset;
0 5 1 field Ljava/time/temporal/TemporalField;
MethodParameters:
Name Flags
field
public <R> R query(java.time.temporal.TemporalQuery<R>);
descriptor: (Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.time.temporal.TemporalQueries.offset:()Ljava/time/temporal/TemporalQuery;
if_acmpeq 1
aload 1
invokestatic java.time.temporal.TemporalQueries.zone:()Ljava/time/temporal/TemporalQuery;
if_acmpne 2
1: StackMap locals:
StackMap stack:
aload 0
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial java.time.temporal.TemporalAccessor.query:(Ljava/time/temporal/TemporalQuery;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/time/ZoneOffset;
0 3 1 query Ljava/time/temporal/TemporalQuery<TR;>;
Signature: <R:Ljava/lang/Object;>(Ljava/time/temporal/TemporalQuery<TR;>;)TR;
MethodParameters:
Name Flags
query
public java.time.temporal.Temporal adjustInto(java.time.temporal.Temporal);
descriptor: (Ljava/time/temporal/Temporal;)Ljava/time/temporal/Temporal;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getstatic java.time.temporal.ChronoField.OFFSET_SECONDS:Ljava/time/temporal/ChronoField;
aload 0
getfield java.time.ZoneOffset.totalSeconds:I
i2l
invokeinterface java.time.temporal.Temporal.with:(Ljava/time/temporal/TemporalField;J)Ljava/time/temporal/Temporal;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/ZoneOffset;
0 1 1 temporal Ljava/time/temporal/Temporal;
MethodParameters:
Name Flags
temporal
public int compareTo(java.time.ZoneOffset);
descriptor: (Ljava/time/ZoneOffset;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield java.time.ZoneOffset.totalSeconds:I
aload 0
getfield java.time.ZoneOffset.totalSeconds:I
isub
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/ZoneOffset;
0 1 1 other Ljava/time/ZoneOffset;
MethodParameters:
Name Flags
other
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof java.time.ZoneOffset
ifeq 5
3: aload 0
getfield java.time.ZoneOffset.totalSeconds:I
aload 1
checkcast java.time.ZoneOffset
getfield java.time.ZoneOffset.totalSeconds:I
if_icmpne 4
iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
5: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/time/ZoneOffset;
0 6 1 obj Ljava/lang/Object;
MethodParameters:
Name Flags
obj
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.time.ZoneOffset.totalSeconds:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/ZoneOffset;
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: aload 0
getfield java.time.ZoneOffset.id:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/ZoneOffset;
private java.lang.Object writeReplace();
descriptor: ()Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: new java.time.Ser
dup
bipush 8
aload 0
invokespecial java.time.Ser.<init>:(BLjava/lang/Object;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/ZoneOffset;
private void readObject(java.io.ObjectInputStream);
descriptor: (Ljava/io/ObjectInputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new java.io.InvalidObjectException
dup
ldc "Deserialization via serialization delegate"
invokespecial java.io.InvalidObjectException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/time/ZoneOffset;
0 1 1 s Ljava/io/ObjectInputStream;
Exceptions:
throws java.io.InvalidObjectException
MethodParameters:
Name Flags
s
void write(java.io.DataOutput);
descriptor: (Ljava/io/DataOutput;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
bipush 8
invokeinterface java.io.DataOutput.writeByte:(I)V
1: aload 0
aload 1
invokevirtual java.time.ZoneOffset.writeExternal:(Ljava/io/DataOutput;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/time/ZoneOffset;
0 3 1 out Ljava/io/DataOutput;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
out
void writeExternal(java.io.DataOutput);
descriptor: (Ljava/io/DataOutput;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield java.time.ZoneOffset.totalSeconds:I
istore 2
start local 2 1: iload 2
sipush 900
irem
ifne 2
iload 2
sipush 900
idiv
goto 3
StackMap locals: int
StackMap stack:
2: bipush 127
StackMap locals:
StackMap stack: int
3: istore 3
start local 3 4: aload 1
iload 3
invokeinterface java.io.DataOutput.writeByte:(I)V
5: iload 3
bipush 127
if_icmpne 7
6: aload 1
iload 2
invokeinterface java.io.DataOutput.writeInt:(I)V
7: StackMap locals: int
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/time/ZoneOffset;
0 8 1 out Ljava/io/DataOutput;
1 8 2 offsetSecs I
4 8 3 offsetByte I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
out
static java.time.ZoneOffset readExternal(java.io.DataInput);
descriptor: (Ljava/io/DataInput;)Ljava/time/ZoneOffset;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokeinterface java.io.DataInput.readByte:()B
istore 1
start local 1 1: iload 1
bipush 127
if_icmpne 2
aload 0
invokeinterface java.io.DataInput.readInt:()I
invokestatic java.time.ZoneOffset.ofTotalSeconds:(I)Ljava/time/ZoneOffset;
goto 3
StackMap locals: int
StackMap stack:
2: iload 1
sipush 900
imul
invokestatic java.time.ZoneOffset.ofTotalSeconds:(I)Ljava/time/ZoneOffset;
StackMap locals:
StackMap stack: java.time.ZoneOffset
3: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 in Ljava/io/DataInput;
1 4 1 offsetByte I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
in
public int compareTo(java.lang.Object);
descriptor: (Ljava/lang/Object;)I
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast java.time.ZoneOffset
invokevirtual java.time.ZoneOffset.compareTo:(Ljava/time/ZoneOffset;)I
ireturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/time/ZoneId;Ljava/time/temporal/TemporalAccessor;Ljava/time/temporal/TemporalAdjuster;Ljava/lang/Comparable<Ljava/time/ZoneOffset;>;Ljava/io/Serializable;
SourceFile: "ZoneOffset.java"