/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.time.* ;
import java.time.format.* ;
import java.sql.Timestamp ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
java.
sql.
Timestamp ts
= // Avoid using this badly-designed legacy class if at all possible. Timestamp // You can convert back-and-forth between legacy and modern classes. .from( // New method added to legacy class to convert from modern class.
OffsetDateTime // Represents a moment with an offset-of-UTC, a number of some hours-minutes-seconds ahead or behind UTC.
.parse( "2019-01-22T13:09:54.620-05:00" ) // Text in standard ISO 8601 format can be parsed by default, without a formatting pattern.
.toInstant() // Adjust from an offset to UTC (an offset of zero) by extracting an `Instant`.
) // Returns a `Timestamp` object. Same moment as both the `OffsetDateTime` and `Instant` objects.
;
System.
out.
println( "ts.toString(): " + ts
) ; }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgppbXBvcnQgamF2YS50aW1lLiogOwppbXBvcnQgamF2YS50aW1lLmZvcm1hdC4qIDsKaW1wb3J0IGphdmEuc3FsLlRpbWVzdGFtcCA7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoKamF2YS5zcWwuVGltZXN0YW1wIHRzID0gICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBdm9pZCB1c2luZyB0aGlzIGJhZGx5LWRlc2lnbmVkIGxlZ2FjeSBjbGFzcyBpZiBhdCBhbGwgcG9zc2libGUuCiAgICBUaW1lc3RhbXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gWW91IGNhbiBjb252ZXJ0IGJhY2stYW5kLWZvcnRoIGJldHdlZW4gbGVnYWN5IGFuZCBtb2Rlcm4gY2xhc3Nlcy4KICAgIC5mcm9tKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBOZXcgbWV0aG9kIGFkZGVkIHRvIGxlZ2FjeSBjbGFzcyB0byBjb252ZXJ0IGZyb20gbW9kZXJuIGNsYXNzLgogICAgICAgIE9mZnNldERhdGVUaW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlcHJlc2VudHMgYSBtb21lbnQgd2l0aCBhbiBvZmZzZXQtb2YtVVRDLCBhIG51bWJlciBvZiBzb21lIGhvdXJzLW1pbnV0ZXMtc2Vjb25kcyBhaGVhZCBvciBiZWhpbmQgVVRDLgogICAgICAgLnBhcnNlKCAiMjAxOS0wMS0yMlQxMzowOTo1NC42MjAtMDU6MDAiICkgIC8vIFRleHQgaW4gc3RhbmRhcmQgSVNPIDg2MDEgZm9ybWF0IGNhbiBiZSBwYXJzZWQgYnkgZGVmYXVsdCwgd2l0aG91dCBhIGZvcm1hdHRpbmcgcGF0dGVybi4KICAgICAgIC50b0luc3RhbnQoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGp1c3QgZnJvbSBhbiBvZmZzZXQgdG8gVVRDIChhbiBvZmZzZXQgb2YgemVybykgYnkgZXh0cmFjdGluZyBhbiBgSW5zdGFudGAuIAogICAgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJldHVybnMgYSBgVGltZXN0YW1wYCBvYmplY3QuIFNhbWUgbW9tZW50IGFzIGJvdGggdGhlIGBPZmZzZXREYXRlVGltZWAgYW5kIGBJbnN0YW50YCBvYmplY3RzLgo7CgpTeXN0ZW0ub3V0LnByaW50bG4oICJ0cy50b1N0cmluZygpOiAiICsgdHMgKSA7Cgl9Cn0=