diff --git a/google-cloud-clients/google-cloud-compute/pom.xml b/google-cloud-clients/google-cloud-compute/pom.xml
index af91537036e3..bd956f431738 100644
--- a/google-cloud-clients/google-cloud-compute/pom.xml
+++ b/google-cloud-clients/google-cloud-compute/pom.xml
@@ -31,11 +31,6 @@
google-api-services-compute
compile
-
- joda-time
- joda-time
- compile
-
diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/AddressInfo.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/AddressInfo.java
index 240f40add851..c457d7d5edf9 100644
--- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/AddressInfo.java
+++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/AddressInfo.java
@@ -27,8 +27,9 @@
import java.math.BigInteger;
import java.util.List;
import java.util.Objects;
-import org.joda.time.format.DateTimeFormatter;
-import org.joda.time.format.ISODateTimeFormat;
+import org.threeten.bp.Instant;
+import org.threeten.bp.ZoneOffset;
+import org.threeten.bp.format.DateTimeFormatter;
/**
* A Google Compute Engine address. With Compute Engine you can create static external IP addresses
@@ -61,7 +62,8 @@ public Address apply(AddressInfo addressInfo) {
};
private static final long serialVersionUID = 7678434703520207500L;
- private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime();
+ private static final DateTimeFormatter TIMESTAMP_FORMATTER =
+ DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC);
private final String address;
private final Long creationTimestamp;
@@ -324,7 +326,10 @@ static final class BuilderImpl extends Builder {
}
address = addressPb.getAddress();
if (addressPb.getCreationTimestamp() != null) {
- creationTimestamp = TIMESTAMP_FORMATTER.parseMillis(addressPb.getCreationTimestamp());
+ creationTimestamp =
+ TIMESTAMP_FORMATTER
+ .parse(addressPb.getCreationTimestamp(), Instant.FROM)
+ .toEpochMilli();
}
description = addressPb.getDescription();
if (addressPb.getId() != null) {
@@ -485,7 +490,8 @@ Address toPb() {
Address addressPb = usage != null ? usage.toPb() : new Address();
addressPb.setAddress(address);
if (creationTimestamp != null) {
- addressPb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp));
+ addressPb.setCreationTimestamp(
+ TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(creationTimestamp)));
}
addressPb.setDescription(description);
if (generatedId != null) {
diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DeprecationStatus.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DeprecationStatus.java
index a12183335c00..b653188120c8 100644
--- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DeprecationStatus.java
+++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DeprecationStatus.java
@@ -22,8 +22,10 @@
import com.google.common.base.MoreObjects;
import java.io.Serializable;
import java.util.Objects;
-import org.joda.time.format.DateTimeFormatter;
-import org.joda.time.format.ISODateTimeFormat;
+import org.threeten.bp.Instant;
+import org.threeten.bp.ZoneOffset;
+import org.threeten.bp.format.DateTimeFormatter;
+import org.threeten.bp.format.DateTimeParseException;
/**
* The deprecation status associated to a Google Compute Engine resource.
@@ -33,8 +35,8 @@
public final class DeprecationStatus implements Serializable {
private static final long serialVersionUID = -2695077634793679794L;
- private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime();
- private static final DateTimeFormatter TIMESTAMP_PARSER = ISODateTimeFormat.dateTimeParser();
+ private static final DateTimeFormatter TIMESTAMP_FORMATTER =
+ DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC);
private final String deleted;
private final String deprecated;
@@ -127,7 +129,7 @@ Builder setObsolete(String obsolete) {
* to {@link Status#DELETED}. In milliseconds since epoch.
*/
public Builder setDeleted(long deleted) {
- this.deleted = TIMESTAMP_FORMATTER.print(deleted);
+ this.deleted = TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(deleted));
return this;
}
@@ -136,7 +138,7 @@ public Builder setDeleted(long deleted) {
* to {@link Status#DEPRECATED}. In milliseconds since epoch.
*/
public Builder setDeprecated(long deprecated) {
- this.deprecated = TIMESTAMP_FORMATTER.print(deprecated);
+ this.deprecated = TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(deprecated));
return this;
}
@@ -145,7 +147,7 @@ public Builder setDeprecated(long deprecated) {
* to {@link Status#OBSOLETE}. In milliseconds since epoch.
*/
public Builder setObsolete(long obsolete) {
- this.obsolete = TIMESTAMP_FORMATTER.print(obsolete);
+ this.obsolete = TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(obsolete));
return this;
}
@@ -222,8 +224,10 @@ public String getObsolete() {
*/
public Long getDeletedMillis() {
try {
- return deleted != null ? TIMESTAMP_PARSER.parseMillis(deleted) : null;
- } catch (IllegalArgumentException ex) {
+ return deleted != null
+ ? TIMESTAMP_FORMATTER.parse(deleted, Instant.FROM).toEpochMilli()
+ : null;
+ } catch (DateTimeParseException ex) {
throw new IllegalStateException(ex.getMessage(), ex);
}
}
@@ -236,8 +240,10 @@ public Long getDeletedMillis() {
*/
public Long getDeprecatedMillis() {
try {
- return deprecated != null ? TIMESTAMP_PARSER.parseMillis(deprecated) : null;
- } catch (IllegalArgumentException ex) {
+ return deprecated != null
+ ? TIMESTAMP_FORMATTER.parse(deprecated, Instant.FROM).toEpochMilli()
+ : null;
+ } catch (DateTimeParseException ex) {
throw new IllegalStateException(ex.getMessage(), ex);
}
}
@@ -250,8 +256,10 @@ public Long getDeprecatedMillis() {
*/
public Long getObsoleteMillis() {
try {
- return obsolete != null ? TIMESTAMP_PARSER.parseMillis(obsolete) : null;
- } catch (IllegalArgumentException ex) {
+ return obsolete != null
+ ? TIMESTAMP_FORMATTER.parse(obsolete, Instant.FROM).toEpochMilli()
+ : null;
+ } catch (DateTimeParseException ex) {
throw new IllegalStateException(ex.getMessage(), ex);
}
}
diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DiskInfo.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DiskInfo.java
index 9fcf3e877931..17ab780a1e05 100644
--- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DiskInfo.java
+++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DiskInfo.java
@@ -27,8 +27,9 @@
import java.math.BigInteger;
import java.util.List;
import java.util.Objects;
-import org.joda.time.format.DateTimeFormatter;
-import org.joda.time.format.ISODateTimeFormat;
+import org.threeten.bp.Instant;
+import org.threeten.bp.ZoneOffset;
+import org.threeten.bp.format.DateTimeFormatter;
/**
* A Google Compute Engine persistent disk. A disk can be used as primary storage for your virtual
@@ -54,7 +55,8 @@ public Disk apply(DiskInfo diskType) {
};
private static final long serialVersionUID = -7173418340679279619L;
- private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime();
+ private static final DateTimeFormatter TIMESTAMP_FORMATTER =
+ DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC);
private final String generatedId;
private final DiskId diskId;
@@ -149,7 +151,8 @@ static final class BuilderImpl extends Builder {
}
this.configuration = DiskConfiguration.fromPb(diskPb);
if (diskPb.getCreationTimestamp() != null) {
- this.creationTimestamp = TIMESTAMP_FORMATTER.parseMillis(diskPb.getCreationTimestamp());
+ this.creationTimestamp =
+ TIMESTAMP_FORMATTER.parse(diskPb.getCreationTimestamp(), Instant.FROM).toEpochMilli();
}
if (diskPb.getStatus() != null) {
this.creationStatus = CreationStatus.valueOf(diskPb.getStatus());
@@ -163,10 +166,12 @@ static final class BuilderImpl extends Builder {
this.attachedInstances = Lists.transform(diskPb.getUsers(), InstanceId.FROM_URL_FUNCTION);
}
if (diskPb.getLastAttachTimestamp() != null) {
- this.lastAttachTimestamp = TIMESTAMP_FORMATTER.parseMillis(diskPb.getLastAttachTimestamp());
+ this.lastAttachTimestamp =
+ TIMESTAMP_FORMATTER.parse(diskPb.getLastAttachTimestamp(), Instant.FROM).toEpochMilli();
}
if (diskPb.getLastDetachTimestamp() != null) {
- this.lastDetachTimestamp = TIMESTAMP_FORMATTER.parseMillis(diskPb.getLastDetachTimestamp());
+ this.lastDetachTimestamp =
+ TIMESTAMP_FORMATTER.parse(diskPb.getLastDetachTimestamp(), Instant.FROM).toEpochMilli();
}
}
@@ -377,7 +382,8 @@ Disk toPb() {
diskPb.setId(new BigInteger(generatedId));
}
if (creationTimestamp != null) {
- diskPb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp));
+ diskPb.setCreationTimestamp(
+ TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(creationTimestamp)));
}
diskPb.setZone(diskId.getZoneId().getSelfLink());
if (creationStatus != null) {
@@ -393,10 +399,12 @@ Disk toPb() {
diskPb.setUsers(Lists.transform(attachedInstances, InstanceId.TO_URL_FUNCTION));
}
if (lastAttachTimestamp != null) {
- diskPb.setLastAttachTimestamp(TIMESTAMP_FORMATTER.print(lastAttachTimestamp));
+ diskPb.setLastAttachTimestamp(
+ TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(lastAttachTimestamp)));
}
if (lastDetachTimestamp != null) {
- diskPb.setLastDetachTimestamp(TIMESTAMP_FORMATTER.print(lastDetachTimestamp));
+ diskPb.setLastDetachTimestamp(
+ TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(lastDetachTimestamp)));
}
return diskPb;
}
diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DiskType.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DiskType.java
index 4ab406628697..24b1288eba5c 100644
--- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DiskType.java
+++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/DiskType.java
@@ -21,8 +21,9 @@
import java.io.Serializable;
import java.math.BigInteger;
import java.util.Objects;
-import org.joda.time.format.DateTimeFormatter;
-import org.joda.time.format.ISODateTimeFormat;
+import org.threeten.bp.Instant;
+import org.threeten.bp.ZoneOffset;
+import org.threeten.bp.format.DateTimeFormatter;
/**
* A Google Compute Engine disk type. A disk type represents the type of disk to use, such as {@code
@@ -48,7 +49,8 @@ public com.google.api.services.compute.model.DiskType apply(DiskType diskType) {
};
private static final long serialVersionUID = -944042261695072026L;
- private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime();
+ private static final DateTimeFormatter TIMESTAMP_FORMATTER =
+ DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC);
private final String generatedId;
private final DiskTypeId diskTypeId;
@@ -191,7 +193,8 @@ com.google.api.services.compute.model.DiskType toPb() {
diskTypePb.setId(new BigInteger(generatedId));
}
if (creationTimestamp != null) {
- diskTypePb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp));
+ diskTypePb.setCreationTimestamp(
+ TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(creationTimestamp)));
}
diskTypePb.setDescription(description);
diskTypePb.setValidDiskSize(validDiskSize);
@@ -215,7 +218,9 @@ static DiskType fromPb(com.google.api.services.compute.model.DiskType diskTypePb
}
if (diskTypePb.getCreationTimestamp() != null) {
builder.setCreationTimestamp(
- TIMESTAMP_FORMATTER.parseMillis(diskTypePb.getCreationTimestamp()));
+ TIMESTAMP_FORMATTER
+ .parse(diskTypePb.getCreationTimestamp(), Instant.FROM)
+ .toEpochMilli());
}
builder.setDiskTypeId(DiskTypeId.fromUrl(diskTypePb.getSelfLink()));
builder.setDescription(diskTypePb.getDescription());
diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/ImageInfo.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/ImageInfo.java
index b56c85dddaf6..4531524b9df3 100644
--- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/ImageInfo.java
+++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/ImageInfo.java
@@ -27,8 +27,9 @@
import java.math.BigInteger;
import java.util.List;
import java.util.Objects;
-import org.joda.time.format.DateTimeFormatter;
-import org.joda.time.format.ISODateTimeFormat;
+import org.threeten.bp.Instant;
+import org.threeten.bp.ZoneOffset;
+import org.threeten.bp.format.DateTimeFormatter;
/**
* A Google Compute Engine Image. An image contains a boot loader, an operating system and a root
@@ -59,7 +60,8 @@ public Image apply(ImageInfo image) {
};
private static final long serialVersionUID = -1061916352807358977L;
- private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime();
+ private static final DateTimeFormatter TIMESTAMP_FORMATTER =
+ DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC);
private final String generatedId;
private final ImageId imageId;
@@ -149,7 +151,8 @@ static final class BuilderImpl extends Builder {
this.generatedId = imagePb.getId().toString();
}
if (imagePb.getCreationTimestamp() != null) {
- this.creationTimestamp = TIMESTAMP_FORMATTER.parseMillis(imagePb.getCreationTimestamp());
+ this.creationTimestamp =
+ TIMESTAMP_FORMATTER.parse(imagePb.getCreationTimestamp(), Instant.FROM).toEpochMilli();
}
this.imageId = ImageId.fromUrl(imagePb.getSelfLink());
this.description = imagePb.getDescription();
@@ -350,7 +353,8 @@ Image toPb() {
imagePb.setId(new BigInteger(generatedId));
}
if (creationTimestamp != null) {
- imagePb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp));
+ imagePb.setCreationTimestamp(
+ TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(creationTimestamp)));
}
imagePb.setName(imageId.getImage());
imagePb.setDescription(description);
diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/InstanceInfo.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/InstanceInfo.java
index 5502d71ac6ab..06b19803d5e0 100644
--- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/InstanceInfo.java
+++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/InstanceInfo.java
@@ -28,8 +28,9 @@
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
-import org.joda.time.format.DateTimeFormatter;
-import org.joda.time.format.ISODateTimeFormat;
+import org.threeten.bp.Instant;
+import org.threeten.bp.ZoneOffset;
+import org.threeten.bp.format.DateTimeFormatter;
/**
* A Google Compute Engine VM Instance. An instance is a virtual machine (VM) hosted on Google's
@@ -67,7 +68,8 @@ public Instance apply(InstanceInfo instance) {
};
private static final long serialVersionUID = -6601223112628977168L;
- private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime();
+ private static final DateTimeFormatter TIMESTAMP_FORMATTER =
+ DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC);
private final String generatedId;
private final InstanceId instanceId;
@@ -243,7 +245,10 @@ public static final class BuilderImpl extends Builder {
}
this.instanceId = InstanceId.fromUrl(instancePb.getSelfLink());
if (instancePb.getCreationTimestamp() != null) {
- this.creationTimestamp = TIMESTAMP_FORMATTER.parseMillis(instancePb.getCreationTimestamp());
+ this.creationTimestamp =
+ TIMESTAMP_FORMATTER
+ .parse(instancePb.getCreationTimestamp(), Instant.FROM)
+ .toEpochMilli();
}
this.description = instancePb.getDescription();
if (instancePb.getStatus() != null) {
@@ -585,7 +590,8 @@ Instance toPb() {
instancePb.setId(new BigInteger(generatedId));
}
if (creationTimestamp != null) {
- instancePb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp));
+ instancePb.setCreationTimestamp(
+ TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(creationTimestamp)));
}
instancePb.setName(instanceId.getInstance());
instancePb.setDescription(description);
diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/MachineType.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/MachineType.java
index fe71eb8b6ee6..4ac86b8b672f 100644
--- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/MachineType.java
+++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/MachineType.java
@@ -24,8 +24,9 @@
import java.math.BigInteger;
import java.util.List;
import java.util.Objects;
-import org.joda.time.format.DateTimeFormatter;
-import org.joda.time.format.ISODateTimeFormat;
+import org.threeten.bp.Instant;
+import org.threeten.bp.ZoneOffset;
+import org.threeten.bp.format.DateTimeFormatter;
/**
* A Google Compute Engine machine type. A machine type determine the virtualized hardware
@@ -52,7 +53,8 @@ public com.google.api.services.compute.model.MachineType apply(MachineType type)
return type.toPb();
}
};
- private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime();
+ private static final DateTimeFormatter TIMESTAMP_FORMATTER =
+ DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC);
private static final long serialVersionUID = -4210962597502860450L;
@@ -241,7 +243,8 @@ com.google.api.services.compute.model.MachineType toPb() {
machineTypePb.setId(new BigInteger(generatedId));
}
if (creationTimestamp != null) {
- machineTypePb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp));
+ machineTypePb.setCreationTimestamp(
+ TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(creationTimestamp)));
}
machineTypePb.setName(machineTypeId.getType());
machineTypePb.setDescription(description);
@@ -280,7 +283,9 @@ static MachineType fromPb(com.google.api.services.compute.model.MachineType mach
}
if (machineTypePb.getCreationTimestamp() != null) {
builder.setCreationTimestamp(
- TIMESTAMP_FORMATTER.parseMillis(machineTypePb.getCreationTimestamp()));
+ TIMESTAMP_FORMATTER
+ .parse(machineTypePb.getCreationTimestamp(), Instant.FROM)
+ .toEpochMilli());
}
builder.setDescription(machineTypePb.getDescription());
builder.setCpus(machineTypePb.getGuestCpus());
diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/NetworkInfo.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/NetworkInfo.java
index c86e778f9cc5..978d662e600a 100644
--- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/NetworkInfo.java
+++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/NetworkInfo.java
@@ -24,8 +24,9 @@
import java.io.Serializable;
import java.math.BigInteger;
import java.util.Objects;
-import org.joda.time.format.DateTimeFormatter;
-import org.joda.time.format.ISODateTimeFormat;
+import org.threeten.bp.Instant;
+import org.threeten.bp.ZoneOffset;
+import org.threeten.bp.format.DateTimeFormatter;
/**
* A Google Compute Engine Network. Every virtual machine instance is created as a member of a
@@ -56,7 +57,8 @@ public Network apply(NetworkInfo network) {
};
private static final long serialVersionUID = 4336912581538114026L;
- private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime();
+ private static final DateTimeFormatter TIMESTAMP_FORMATTER =
+ DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC);
private final String generatedId;
private final NetworkId networkId;
@@ -115,7 +117,10 @@ static final class BuilderImpl extends Builder {
this.generatedId = networkPb.getId().toString();
}
if (networkPb.getCreationTimestamp() != null) {
- this.creationTimestamp = TIMESTAMP_FORMATTER.parseMillis(networkPb.getCreationTimestamp());
+ this.creationTimestamp =
+ TIMESTAMP_FORMATTER
+ .parse(networkPb.getCreationTimestamp(), Instant.FROM)
+ .toEpochMilli();
}
this.networkId = NetworkId.fromUrl(networkPb.getSelfLink());
this.description = networkPb.getDescription();
@@ -235,7 +240,8 @@ Network toPb() {
networkPb.setId(new BigInteger(generatedId));
}
if (creationTimestamp != null) {
- networkPb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp));
+ networkPb.setCreationTimestamp(
+ TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(creationTimestamp)));
}
networkPb.setName(networkId.getNetwork());
networkPb.setDescription(description);
diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Operation.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Operation.java
index f63f080a0aa4..80d819c4de35 100644
--- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Operation.java
+++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Operation.java
@@ -38,9 +38,10 @@
import java.util.Objects;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
-import org.joda.time.format.DateTimeFormatter;
-import org.joda.time.format.ISODateTimeFormat;
import org.threeten.bp.Duration;
+import org.threeten.bp.Instant;
+import org.threeten.bp.ZoneOffset;
+import org.threeten.bp.format.DateTimeFormatter;
/**
* Google Compute Engine operations. Operation identity can be obtained via {@link
@@ -52,7 +53,8 @@
public class Operation implements Serializable {
private static final long serialVersionUID = -8979001444590023899L;
- private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime();
+ private static final DateTimeFormatter TIMESTAMP_FORMATTER =
+ DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC);
private final RetrySettings DEFAULT_OPERATION_WAIT_SETTINGS =
RetrySettings.newBuilder()
@@ -350,13 +352,15 @@ static final class Builder {
user = operationPb.getUser();
progress = operationPb.getProgress();
if (operationPb.getInsertTime() != null) {
- insertTime = TIMESTAMP_FORMATTER.parseMillis(operationPb.getInsertTime());
+ insertTime =
+ TIMESTAMP_FORMATTER.parse(operationPb.getInsertTime(), Instant.FROM).toEpochMilli();
}
if (operationPb.getStartTime() != null) {
- startTime = TIMESTAMP_FORMATTER.parseMillis(operationPb.getStartTime());
+ startTime =
+ TIMESTAMP_FORMATTER.parse(operationPb.getStartTime(), Instant.FROM).toEpochMilli();
}
if (operationPb.getEndTime() != null) {
- endTime = TIMESTAMP_FORMATTER.parseMillis(operationPb.getEndTime());
+ endTime = TIMESTAMP_FORMATTER.parse(operationPb.getEndTime(), Instant.FROM).toEpochMilli();
}
if (operationPb.getError() != null && operationPb.getError().getErrors() != null) {
errors =
@@ -810,13 +814,13 @@ com.google.api.services.compute.model.Operation toPb() {
operationPb.setUser(user);
operationPb.setProgress(progress);
if (insertTime != null) {
- operationPb.setInsertTime(TIMESTAMP_FORMATTER.print(insertTime));
+ operationPb.setInsertTime(TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(insertTime)));
}
if (startTime != null) {
- operationPb.setStartTime(TIMESTAMP_FORMATTER.print(startTime));
+ operationPb.setStartTime(TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(startTime)));
}
if (endTime != null) {
- operationPb.setEndTime(TIMESTAMP_FORMATTER.print(endTime));
+ operationPb.setEndTime(TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(endTime)));
}
if (errors != null) {
operationPb.setError(
diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Region.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Region.java
index f95faadb8fa7..ff332d1ff783 100644
--- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Region.java
+++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Region.java
@@ -27,8 +27,9 @@
import java.math.BigInteger;
import java.util.List;
import java.util.Objects;
-import org.joda.time.format.DateTimeFormatter;
-import org.joda.time.format.ISODateTimeFormat;
+import org.threeten.bp.Instant;
+import org.threeten.bp.ZoneOffset;
+import org.threeten.bp.format.DateTimeFormatter;
/**
* A Google Compute Engine region.
@@ -53,7 +54,8 @@ public com.google.api.services.compute.model.Region apply(Region region) {
};
private static final long serialVersionUID = -3578710133393645135L;
- private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime();
+ private static final DateTimeFormatter TIMESTAMP_FORMATTER =
+ DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC);
private final RegionId regionId;
private final String generatedId;
@@ -335,7 +337,8 @@ com.google.api.services.compute.model.Region toPb() {
regionPb.setId(new BigInteger(generatedId));
}
if (creationTimestamp != null) {
- regionPb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp));
+ regionPb.setCreationTimestamp(
+ TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(creationTimestamp)));
}
regionPb.setName(regionId.getRegion());
regionPb.setDescription(description);
@@ -367,7 +370,7 @@ static Region fromPb(com.google.api.services.compute.model.Region regionPb) {
}
if (regionPb.getCreationTimestamp() != null) {
builder.setCreationTimestamp(
- TIMESTAMP_FORMATTER.parseMillis(regionPb.getCreationTimestamp()));
+ TIMESTAMP_FORMATTER.parse(regionPb.getCreationTimestamp(), Instant.FROM).toEpochMilli());
}
builder.setDescription(regionPb.getDescription());
if (regionPb.getStatus() != null) {
diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/SnapshotInfo.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/SnapshotInfo.java
index f1032bcec95b..9651024347f7 100644
--- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/SnapshotInfo.java
+++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/SnapshotInfo.java
@@ -27,8 +27,9 @@
import java.math.BigInteger;
import java.util.List;
import java.util.Objects;
-import org.joda.time.format.DateTimeFormatter;
-import org.joda.time.format.ISODateTimeFormat;
+import org.threeten.bp.Instant;
+import org.threeten.bp.ZoneOffset;
+import org.threeten.bp.format.DateTimeFormatter;
/**
* A Google Compute Engine snapshot. Compute Engine allows you to take snapshots of your persistent
@@ -57,7 +58,8 @@ public Snapshot apply(SnapshotInfo snapshot) {
};
private static final long serialVersionUID = 1065513502131159769L;
- private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime();
+ private static final DateTimeFormatter TIMESTAMP_FORMATTER =
+ DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC);
private final String generatedId;
private final SnapshotId snapshotId;
@@ -171,7 +173,10 @@ static final class BuilderImpl extends Builder {
this.generatedId = snapshotPb.getId().toString();
}
if (snapshotPb.getCreationTimestamp() != null) {
- this.creationTimestamp = TIMESTAMP_FORMATTER.parseMillis(snapshotPb.getCreationTimestamp());
+ this.creationTimestamp =
+ TIMESTAMP_FORMATTER
+ .parse(snapshotPb.getCreationTimestamp(), Instant.FROM)
+ .toEpochMilli();
}
this.snapshotId = SnapshotId.fromUrl(snapshotPb.getSelfLink());
this.description = snapshotPb.getDescription();
@@ -408,7 +413,8 @@ Snapshot toPb() {
snapshotPb.setId(new BigInteger(generatedId));
}
if (creationTimestamp != null) {
- snapshotPb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp));
+ snapshotPb.setCreationTimestamp(
+ TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(creationTimestamp)));
}
snapshotPb.setName(snapshotId.getSnapshot());
snapshotPb.setDescription(description);
diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/SubnetworkInfo.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/SubnetworkInfo.java
index 8dfea5ea5d24..896341f65004 100644
--- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/SubnetworkInfo.java
+++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/SubnetworkInfo.java
@@ -24,8 +24,9 @@
import java.io.Serializable;
import java.math.BigInteger;
import java.util.Objects;
-import org.joda.time.format.DateTimeFormatter;
-import org.joda.time.format.ISODateTimeFormat;
+import org.threeten.bp.Instant;
+import org.threeten.bp.ZoneOffset;
+import org.threeten.bp.format.DateTimeFormatter;
/**
* A Google Compute Engine subnetwork. Compute Engine subnetworks allow you to segment your Compute
@@ -52,7 +53,8 @@ public Subnetwork apply(SubnetworkInfo subnetwork) {
};
private static final long serialVersionUID = 7491176262675441579L;
- private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime();
+ private static final DateTimeFormatter TIMESTAMP_FORMATTER =
+ DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC);
private final String generatedId;
private final SubnetworkId subnetworkId;
@@ -128,7 +130,9 @@ static final class BuilderImpl extends Builder {
}
if (subnetworkPb.getCreationTimestamp() != null) {
this.creationTimestamp =
- TIMESTAMP_FORMATTER.parseMillis(subnetworkPb.getCreationTimestamp());
+ TIMESTAMP_FORMATTER
+ .parse(subnetworkPb.getCreationTimestamp(), Instant.FROM)
+ .toEpochMilli();
}
this.subnetworkId = SubnetworkId.fromUrl(subnetworkPb.getSelfLink());
this.description = subnetworkPb.getDescription();
@@ -292,7 +296,8 @@ Subnetwork toPb() {
subnetworkPb.setId(new BigInteger(generatedId));
}
if (creationTimestamp != null) {
- subnetworkPb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp));
+ subnetworkPb.setCreationTimestamp(
+ TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(creationTimestamp)));
}
subnetworkPb.setName(subnetworkId.getSubnetwork());
subnetworkPb.setDescription(description);
diff --git a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Zone.java b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Zone.java
index 33ad7a9442cc..527255ff8ca1 100644
--- a/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Zone.java
+++ b/google-cloud-clients/google-cloud-compute/src/main/java/com/google/cloud/compute/deprecated/Zone.java
@@ -24,8 +24,9 @@
import java.io.Serializable;
import java.math.BigInteger;
import java.util.Objects;
-import org.joda.time.format.DateTimeFormatter;
-import org.joda.time.format.ISODateTimeFormat;
+import org.threeten.bp.Instant;
+import org.threeten.bp.ZoneOffset;
+import org.threeten.bp.format.DateTimeFormatter;
/**
* A Google Compute Engine zone.
@@ -50,7 +51,8 @@ public com.google.api.services.compute.model.Zone apply(Zone region) {
};
private static final long serialVersionUID = 6113636504417213010L;
- private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime();
+ private static final DateTimeFormatter TIMESTAMP_FORMATTER =
+ DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC);
private final ZoneId zoneId;
private final String generatedId;
@@ -236,7 +238,8 @@ com.google.api.services.compute.model.Zone toPb() {
zonePb.setId(new BigInteger(generatedId));
}
if (creationTimestamp != null) {
- zonePb.setCreationTimestamp(TIMESTAMP_FORMATTER.print(creationTimestamp));
+ zonePb.setCreationTimestamp(
+ TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(creationTimestamp)));
}
zonePb.setName(zoneId.getZone());
zonePb.setDescription(description);
@@ -264,7 +267,8 @@ static Zone fromPb(com.google.api.services.compute.model.Zone zonePb) {
builder.setGeneratedId(zonePb.getId().toString());
}
if (zonePb.getCreationTimestamp() != null) {
- builder.setCreationTimestamp(TIMESTAMP_FORMATTER.parseMillis(zonePb.getCreationTimestamp()));
+ builder.setCreationTimestamp(
+ TIMESTAMP_FORMATTER.parse(zonePb.getCreationTimestamp(), Instant.FROM).toEpochMilli());
}
builder.setDescription(zonePb.getDescription());
if (zonePb.getStatus() != null) {
diff --git a/google-cloud-clients/google-cloud-compute/src/test/java/com/google/cloud/compute/deprecated/DeprecationStatusTest.java b/google-cloud-clients/google-cloud-compute/src/test/java/com/google/cloud/compute/deprecated/DeprecationStatusTest.java
index 1c6f42fd3b8f..72d36b24baed 100644
--- a/google-cloud-clients/google-cloud-compute/src/test/java/com/google/cloud/compute/deprecated/DeprecationStatusTest.java
+++ b/google-cloud-clients/google-cloud-compute/src/test/java/com/google/cloud/compute/deprecated/DeprecationStatusTest.java
@@ -20,19 +20,24 @@
import static org.junit.Assert.assertNull;
import static org.junit.Assert.fail;
-import org.joda.time.format.DateTimeFormatter;
-import org.joda.time.format.ISODateTimeFormat;
import org.junit.Test;
+import org.threeten.bp.Instant;
+import org.threeten.bp.ZoneOffset;
+import org.threeten.bp.format.DateTimeFormatter;
public class DeprecationStatusTest {
- private static final DateTimeFormatter TIMESTAMP_FORMATTER = ISODateTimeFormat.dateTime();
+ private static final DateTimeFormatter TIMESTAMP_FORMATTER =
+ DateTimeFormatter.ISO_INSTANT.withZone(ZoneOffset.UTC);
private static final Long DELETED_MILLIS = 1453293540000L;
private static final Long DEPRECATED_MILLIS = 1453293420000L;
private static final Long OBSOLETE_MILLIS = 1453293480000L;
- private static final String DELETED = TIMESTAMP_FORMATTER.print(DELETED_MILLIS);
- private static final String DEPRECATED = TIMESTAMP_FORMATTER.print(DEPRECATED_MILLIS);
- private static final String OBSOLETE = TIMESTAMP_FORMATTER.print(OBSOLETE_MILLIS);
+ private static final String DELETED =
+ TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(DELETED_MILLIS));
+ private static final String DEPRECATED =
+ TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(DEPRECATED_MILLIS));
+ private static final String OBSOLETE =
+ TIMESTAMP_FORMATTER.format(Instant.ofEpochMilli(OBSOLETE_MILLIS));
private static final DiskTypeId DISK_TYPE_ID = DiskTypeId.of("project", "zone", "diskType");
private static final MachineTypeId MACHINE_TYPE_ID =
MachineTypeId.of("project", "zone", "machineType");
diff --git a/google-cloud-clients/pom.xml b/google-cloud-clients/pom.xml
index a3d2a9a161d6..0bf1f0e6b1e9 100644
--- a/google-cloud-clients/pom.xml
+++ b/google-cloud-clients/pom.xml
@@ -288,11 +288,6 @@
grpc-testing
${grpc.version}
-
- joda-time
- joda-time
- 2.9.2
-
com.google.code.findbugs
jsr305
diff --git a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/BigQuerySnippets.java b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/BigQuerySnippets.java
index b319c55582be..f0c91d62344c 100644
--- a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/BigQuerySnippets.java
+++ b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/BigQuerySnippets.java
@@ -70,7 +70,8 @@
import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.TimeoutException;
-import org.joda.time.DateTime;
+import org.threeten.bp.Instant;
+import org.threeten.bp.temporal.ChronoUnit;
/** This class contains a number of snippets for the {@link BigQuery} interface. */
public class BigQuerySnippets {
@@ -134,7 +135,7 @@ public Table updateTableExpiration(String datasetName, String tableName) {
Table beforeTable = bigquery.getTable(datasetName, tableName);
// Set table to expire 5 days from now.
- long expirationMillis = DateTime.now().plusDays(5).getMillis();
+ long expirationMillis = Instant.now().plus(5, ChronoUnit.DAYS).toEpochMilli();
TableInfo tableInfo = beforeTable.toBuilder().setExpirationTime(expirationMillis).build();
Table afterTable = bigquery.update(tableInfo);
// [END bigquery_update_table_expiration]
diff --git a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/CloudSnippets.java b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/CloudSnippets.java
index 39a10a3e915a..042020abf83f 100644
--- a/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/CloudSnippets.java
+++ b/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/CloudSnippets.java
@@ -31,11 +31,11 @@
import com.google.cloud.bigquery.TableId;
import java.util.Arrays;
import java.util.concurrent.TimeoutException;
-import org.joda.time.DateTime;
-import org.joda.time.DateTimeZone;
-import org.joda.time.Instant;
-import org.joda.time.format.DateTimeFormatter;
-import org.joda.time.format.ISODateTimeFormat;
+import org.threeten.bp.Instant;
+import org.threeten.bp.LocalDateTime;
+import org.threeten.bp.ZoneOffset;
+import org.threeten.bp.ZonedDateTime;
+import org.threeten.bp.format.DateTimeFormatter;
/** This class contains snippets for cloud.google.com documentation. */
public class CloudSnippets {
@@ -235,7 +235,7 @@ public void runQueryWithArrayParameters() throws InterruptedException {
public void runQueryWithTimestampParameters() throws InterruptedException {
// [START bigquery_query_params_timestamps]
// BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
- DateTime timestamp = new DateTime(2016, 12, 7, 8, 0, 0, DateTimeZone.UTC);
+ ZonedDateTime timestamp = LocalDateTime.of(2016, 12, 7, 8, 0, 0).atZone(ZoneOffset.UTC);
String query = "SELECT TIMESTAMP_ADD(@ts_value, INTERVAL 1 HOUR);";
// Note: Standard SQL is required to use query parameters.
QueryJobConfiguration queryConfig =
@@ -244,19 +244,21 @@ public void runQueryWithTimestampParameters() throws InterruptedException {
"ts_value",
QueryParameterValue.timestamp(
// Timestamp takes microseconds since 1970-01-01T00:00:00 UTC
- timestamp.getMillis() * 1000))
+ timestamp.toInstant().toEpochMilli() * 1000))
.build();
// Print the results.
- DateTimeFormatter formatter = ISODateTimeFormat.dateTimeNoMillis().withZoneUTC();
+ DateTimeFormatter formatter = DateTimeFormatter.ISO_INSTANT.withZone(ZoneOffset.UTC);
for (FieldValueList row : bigquery.query(queryConfig).iterateAll()) {
System.out.printf(
"%s\n",
- formatter.print(
- new DateTime(
- // Timestamp values are returned in microseconds since 1970-01-01T00:00:00 UTC,
- // but org.joda.time.DateTime constructor accepts times in milliseconds.
- row.get(0).getTimestampValue() / 1000, DateTimeZone.UTC)));
+ formatter.format(
+ Instant.ofEpochMilli(
+ // Timestamp values are returned in microseconds since 1970-01-01T00:00:00
+ // UTC,
+ // but org.joda.time.DateTime constructor accepts times in milliseconds.
+ row.get(0).getTimestampValue() / 1000)
+ .atOffset(ZoneOffset.UTC)));
System.out.printf("\n");
}
// [END bigquery_query_params_timestamps]
@@ -330,7 +332,7 @@ public void undeleteTable(String datasetId) throws InterruptedException {
// Record the current time. We'll use this as the snapshot time
// for recovering the table.
- long snapTime = Instant.now().getMillis();
+ long snapTime = Instant.now().toEpochMilli();
// "Accidentally" delete the table.
bigquery.delete(TableId.of(datasetId, tableId));
diff --git a/google-cloud-examples/src/main/java/com/google/cloud/examples/dns/DnsExample.java b/google-cloud-examples/src/main/java/com/google/cloud/examples/dns/DnsExample.java
index c07c3c6fbafb..80c8526fec20 100644
--- a/google-cloud-examples/src/main/java/com/google/cloud/examples/dns/DnsExample.java
+++ b/google-cloud-examples/src/main/java/com/google/cloud/examples/dns/DnsExample.java
@@ -31,8 +31,9 @@
import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.TimeUnit;
-import org.joda.time.format.DateTimeFormat;
-import org.joda.time.format.DateTimeFormatter;
+import org.threeten.bp.Instant;
+import org.threeten.bp.ZoneOffset;
+import org.threeten.bp.format.DateTimeFormatter;
/**
* An example of using Google Cloud DNS.
@@ -63,7 +64,7 @@ public class DnsExample {
private static final Map ACTIONS = new HashMap<>();
private static final DateTimeFormatter FORMATTER =
- DateTimeFormat.forPattern("YYYY-MM-dd HH:mm:ss");
+ DateTimeFormatter.ofPattern("YYYY-MM-dd HH:mm:ss").withZone(ZoneOffset.UTC);
private interface DnsAction {
void run(Dns dns, String... args);
@@ -331,7 +332,8 @@ public void run(Dns dns, String... args) {
ChangeRequest change = iterator.next();
System.out.printf("%nID: %s%n", change.getGeneratedId());
System.out.printf("Status: %s%n", change.status());
- System.out.printf("Started: %s%n", FORMATTER.print(change.getStartTimeMillis()));
+ System.out.printf(
+ "Started: %s%n", FORMATTER.format(Instant.ofEpochMilli(change.getStartTimeMillis())));
System.out.printf("Deletions: %s%n", Joiner.on(", ").join(change.getDeletions()));
System.out.printf("Additions: %s%n", Joiner.on(", ").join(change.getAdditions()));
}
@@ -434,7 +436,8 @@ private static void printZone(Zone zone) {
System.out.printf("%nName: %s%n", zone.getName());
System.out.printf("ID: %s%n", zone.getGeneratedId());
System.out.printf("Description: %s%n", zone.getDescription());
- System.out.printf("Created: %s%n", FORMATTER.print(zone.getCreationTimeMillis()));
+ System.out.printf(
+ "Created: %s%n", FORMATTER.format(Instant.ofEpochMilli(zone.getCreationTimeMillis())));
System.out.printf("Name servers: %s%n", Joiner.on(", ").join(zone.getNameServers()));
}