/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.time.* ;
import java.time.format.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
Instant instant = Instant.ofEpochMilli( 1_564_088_400_000L ) ;
ZoneId z = ZoneId.of( "America/Montreal" ) ;
LocalDate today = LocalDate.now( z ) ;
ZonedDateTime zdt = instant.atZone( z ) ;
DayOfWeek dow = zdt.getDayOfWeek() ;
System.
out.
println( "instant.toString(): " + instant
) ; System.
out.
println( "zdt.toString(): " + zdt
) ; System.
out.
println( "dow.toString(): " + dow
) ;
ZoneOffset offset = ZoneOffset.UTC ; // Constant for UTC (an offset of zero hours-minutes-seconds).
OffsetDateTime odt = instant.atOffset( offset ) ;
// When viewed with a time zone farther to the east, more ahead of UTC, we see Friday rather than Thursday.
Instant // Represent a moment in UTC.
.ofEpochMilli( // Parse your count-from-epoch 1970-01-01T00:00:00Z.
1_564_088_400_000L // Use underscores where you like, to make numeric literals more readable.
) // Returns an `Instant` object.
.atZone( // Adjust from UTC to some time zone.
ZoneId.of( "Asia/Tokyo" ) // Specify time zone using `Continent/Region` format, never 2-4 letter pseudo-zones such as `EST` or `CST` or `IST`.
) // Returns a `ZonedDateTime` object.
.getDayOfWeek() // Returns a `DayOfWeek` object.
.getDisplayName( // Generate automatically-localized string for the name of the day-of-week.
TextStyle.FULL , // How long or abbreviated.
Locale.
US // Locale determines (a) human language for translation, and (b) cultural norms for issues such as abbreviation, punctuation, capitalization. )
);
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgppbXBvcnQgamF2YS50aW1lLiogOwppbXBvcnQgamF2YS50aW1lLmZvcm1hdC4qIDsKCi8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJCkluc3RhbnQgaW5zdGFudCA9IEluc3RhbnQub2ZFcG9jaE1pbGxpKCAxXzU2NF8wODhfNDAwXzAwMEwgKSA7Cgpab25lSWQgeiA9IFpvbmVJZC5vZiggIkFtZXJpY2EvTW9udHJlYWwiICkgOyAgCkxvY2FsRGF0ZSB0b2RheSA9IExvY2FsRGF0ZS5ub3coIHogKSA7Cgpab25lZERhdGVUaW1lIHpkdCA9IGluc3RhbnQuYXRab25lKCB6ICkgOwoKRGF5T2ZXZWVrIGRvdyA9IHpkdC5nZXREYXlPZldlZWsoKSA7CgoKU3lzdGVtLm91dC5wcmludGxuKCAiaW5zdGFudC50b1N0cmluZygpOiAiICsgaW5zdGFudCApIDsKU3lzdGVtLm91dC5wcmludGxuKCAiemR0LnRvU3RyaW5nKCk6ICIgKyB6ZHQgKSA7ClN5c3RlbS5vdXQucHJpbnRsbiggImRvdy50b1N0cmluZygpOiAiICsgZG93ICkgOwoKWm9uZU9mZnNldCBvZmZzZXQgPSBab25lT2Zmc2V0LlVUQyA7ICAvLyBDb25zdGFudCBmb3IgVVRDIChhbiBvZmZzZXQgb2YgemVybyBob3Vycy1taW51dGVzLXNlY29uZHMpLiAKT2Zmc2V0RGF0ZVRpbWUgb2R0ID0gaW5zdGFudC5hdE9mZnNldCggb2Zmc2V0ICkgOwogICAgICAgIAogICAgICAgIAovLyBXaGVuIHZpZXdlZCB3aXRoIGEgdGltZSB6b25lIGZhcnRoZXIgdG8gdGhlIGVhc3QsIG1vcmUgYWhlYWQgb2YgVVRDLCB3ZSBzZWUgRnJpZGF5IHJhdGhlciB0aGFuIFRodXJzZGF5LiAgICAgICAgCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKAogICAgICAgIAkKSW5zdGFudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXByZXNlbnQgYSBtb21lbnQgaW4gVVRDLgoub2ZFcG9jaE1pbGxpKCAgICAgICAgICAgICAgICAgICAgIC8vIFBhcnNlIHlvdXIgY291bnQtZnJvbS1lcG9jaCAxOTcwLTAxLTAxVDAwOjAwOjAwWi4KICAgIDFfNTY0XzA4OF80MDBfMDAwTCAgICAgICAgICAgICAvLyBVc2UgdW5kZXJzY29yZXMgd2hlcmUgeW91IGxpa2UsIHRvIG1ha2UgbnVtZXJpYyBsaXRlcmFscyBtb3JlIHJlYWRhYmxlLgopICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJldHVybnMgYW4gYEluc3RhbnRgIG9iamVjdC4KLmF0Wm9uZSggICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGp1c3QgZnJvbSBVVEMgdG8gc29tZSB0aW1lIHpvbmUuCiAgICBab25lSWQub2YoICJBc2lhL1Rva3lvIiApICAgICAgLy8gU3BlY2lmeSB0aW1lIHpvbmUgdXNpbmcgYENvbnRpbmVudC9SZWdpb25gIGZvcm1hdCwgbmV2ZXIgMi00IGxldHRlciBwc2V1ZG8tem9uZXMgc3VjaCBhcyBgRVNUYCBvciBgQ1NUYCBvciBgSVNUYC4gCikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmV0dXJucyBhIGBab25lZERhdGVUaW1lYCBvYmplY3QuCi5nZXREYXlPZldlZWsoKSAgICAgICAgICAgICAgICAgICAgLy8gUmV0dXJucyBhIGBEYXlPZldlZWtgIG9iamVjdC4KLmdldERpc3BsYXlOYW1lKCAgICAgICAgICAgICAgICAgICAvLyBHZW5lcmF0ZSBhdXRvbWF0aWNhbGx5LWxvY2FsaXplZCBzdHJpbmcgZm9yIHRoZSBuYW1lIG9mIHRoZSBkYXktb2Ytd2Vlay4KICAgIFRleHRTdHlsZS5GVUxMICwgICAgICAgICAgICAgICAvLyBIb3cgbG9uZyBvciBhYmJyZXZpYXRlZC4KICAgIExvY2FsZS5VUyAgICAgICAgICAgICAgICAgICAgICAvLyBMb2NhbGUgZGV0ZXJtaW5lcyAoYSkgaHVtYW4gbGFuZ3VhZ2UgZm9yIHRyYW5zbGF0aW9uLCBhbmQgKGIpIGN1bHR1cmFsIG5vcm1zIGZvciBpc3N1ZXMgc3VjaCBhcyBhYmJyZXZpYXRpb24sIHB1bmN0dWF0aW9uLCBjYXBpdGFsaXphdGlvbi4KKSAKICAgICAgICApOwoJfQp9