Saturday, April 20, 2024
HomeJavaSimpleDateFormat in Java isn't Thread-Protected Use Fastidiously

SimpleDateFormat in Java isn’t Thread-Protected Use Fastidiously


Disclosure: This text might comprise affiliate hyperlinks. Once you buy, we might earn a small fee.

SimpleDateFormat in Java is a quite common class and infrequently used to format Date to String and parse String into Date in Java, particularly in pre Java 8 world, however it may trigger very delicate and exhausting to debug points if not used fastidiously as a result of each DateFormat and SimpleDateFormat both will not be thread-safe and buggy. A name to format() and parse() technique mutate the state of DateFormat class and must be synchronized externally so as to keep away from any situation however many Java builders will not be conscious of those. That is why it is higher to fully keep away from utilizing SimpleDateFormat class particularly if you’re utilizing Java Se 8 or larger model like Java SE 11 or Java SE 17. listed below are a number of factors which it is best to take care whereas utilizing SimpleDateFormat in Java:

SimpleDateFormat in Java isn’t Thread-Protected

2) In case you are sharing Date for SimpleDateFormat class in Java then you want to externally synchronize name to format() and parse() technique as they mutate the state of DateFormat object and might create delicate and exhausting to repair bugs whereas formatting Strings or creating dates in Java. The most effective is to keep away from sharing of DateFormat class altogether.

3) If in case you have the choice use the JODA date time library on your date and time-related operation. it is easy to know and transportable with Java Date API and solves all thread-safety points related to SimpleDateFormat in Java.

4) One other good various of SimpleDateFormat in Java is Apaches’ commons.lang package deal which holds a category referred to as  FastDateFormat utility class and thread-safe various of SimpleDateFormat in Java.

5) One other strategy of synchronizing DateFormat and SimpleDateFormat is utilizing ThreadLocal, which creates SimpleDateFormat on a per Thread foundation however it may be a supply of extreme reminiscence leak and java.lang.OutOfMemoryError if not used fastidiously. so keep away from till you haven’t any different possibility.

And, for those who like a listing, listed below are 10 explanation why you shouldn’t be utilizing SimpleDateFormat class in Java anymore, particularly after Java SE 8 launch:

10 Reasons to not use SimpleDateFormat in Java

That’s all on SimpleDateFormat in Java. Many individuals have identified flaws within the design of the Format class however sadly, Solar or Oracle has not addressed them in any launch not even in JDK7. SimpleDateFormat remains to be the primary alternative due to its availability on customary libraries however must be used fastidiously.

Different Java tutorials you could like

P. S. – Issues have modified from Java 8 onwards and you’ve got a greater Date and Time API with new lessons for the whole lot associated so far and time, together with formatting. In case you are working on Java 8 or larger model then it is best to use DateTimeFormatter class to format the Date String in Java. They’re each Immutable and Thread-safe. 



RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments