Tag Archives: of

[Solved] java.time.zone.ZoneRulesException: Unknown time-zone ID: IST


java.time.zone.ZoneRulesException occurs while validating time zone This exception is used to indicate problems with configured time zone rules.

Constructors

  • ZoneRulesException(String message) : Constructs a new date-time exception with the specified message.
  • ZoneRulesException(String message, Throwable cause) : Constructs a new date-time exception with the specified message and cause.

Sample Code

try
{
// Will throw java.time.zone.ZoneRulesException: Unknown time-zone ID: IST
LocalDate todayIST = LocalDate.now(ZoneId.of("IST"));
}
catch(ZoneRulesException ex)
{
ex.printStackTrace();
}

Output Message


java.time.zone.ZoneRulesException: Unknown time-zone ID: IST
    at java.time.zone.ZoneRulesProvider.getProvider(Unknown Source)
    at java.time.zone.ZoneRulesProvider.getRules(Unknown Source)
    at java.time.ZoneRegion.ofId(Unknown Source)
    at java.time.ZoneId.of(Unknown Source)
    at java.time.ZoneId.of(Unknown Source)
    at datetime.Java8DateTime.localDateAPI(Java8DateTime.java:173)
    at datetime.Java8DateTime.main(Java8DateTime.java:34)

Issue

Here with throw ZoneRulesException if pass as Invalidate time-zone. For above example passing time-zone as IST.

Solutions

A ZoneId is unique id with in System which is used to identify rules to convert between Instant and LocalDateTime. Thre are two distict type of ID:

  • Fixed offsets – a fully resolved offset from UTC/Greenwich, that uses the same offset for all local date-times. Most fixed offsets are represented by ZoneoffSet as + or -.
  • Geographical regions – an area where a specific set of rules for finding the offset from UTC/Greenwich apply.

Ex: A time-zone ID, such as Europe/Paris.

Refer below mapping while pass ZoneId value here for above example use Asia/Kolkata as below.

  • HST – -10:00
  • EST – -05:00
  • MST – -07:00
  • ACT – Australia/Darwin
  • AET – Australia/Sydney
  • AGT – America/Argentina/Buenos_Aires
  • ART – Africa/Cairo
  • AST – America/Anchorage
  • BET – America/Sao_Paulo
  • BST – Asia/Dhaka
  • CAT – Africa/Harare
  • CNT – America/St_Johns
  • CST – America/Chicago
  • CTT – Asia/Shanghai
  • EAT – Africa/Addis_Ababa
  • ECT – Europe/Paris
  • IET – America/Indiana/Indianapolis
  • IST – Asia/Kolkata
  • JST – Asia/Tokyo
  • MIT – Pacific/Apia
  • NET – Asia/Yerevan
  • NST – Pacific/Auckland
  • PLT – Asia/Karachi
  • PNT – America/Phoenix
  • PRT – America/Puerto_Rico
  • PST – America/Los_Angeles
  • SST – Pacific/Guadalcanal
  • VST – Asia/Ho_Chi_Minh
try
{
// Will throw java.time.zone.ZoneRulesException: Unknown time-zone ID: IST
LocalDate todayIST = LocalDate.now(ZoneId.of("Asia/Kolkata"));
}
catch(ZoneRulesException ex)
{
ex.printStackTrace();
}

More Issues Solution

For more other JAVA/JDBC issues solution follow link JAVA/JDBC Issues.Sample Code

Advertisements
Advertisements

Your Feedback Motivate Us

If our FacingIssuesOnIT Experts solutions guide you to resolve your issues and improve your knowledge. Please share your comments, like and subscribe to get notifications for our posts.

Happy Learning !!!