There are times when you need to present a stored value in a different format . . .
Real number example – 8.987578. Here you may prefer to say 8.99
Date example – “2018-1-1”. Here you may prefer to say “1 January 2018”
Java has a number of String formatting methods that do not alter the original value but allows you to express the value in a different format.
Shown below are two examples i.e. one that allows you to format a real number differently and another that allows you to format a date differently. Both of these format methods allow you to define the format using a String parameter.
==============================================================
// Formatting real numbers and dates for output in another format. // Using String as a parameter to define an output format. // New output format does not affect the original value in any way.
// // Default date format is yyyy-MM-dd // Other formats include . . . // "yyyy/M/dd" Month as a single digit. // "dd-MMM-yyyy" Month as 3 letters. // "dd-MMMM-yyyy" Month in full as letters. // "dd-MM-yy"
import java.text.DecimalFormat; import java.time.format.DateTimeFormatter; import java.time.*; public class Formatting { public static void main (String[]args) { // Define the desired format as a String and apply the format DecimalFormat d = new DecimalFormat("0.000"); double theDouble = 45.78864469; System.out.println(d.format(theDouble)); System.out.println(theDouble); // Define the desired format as a String and apply the format DateTimeFormatter formatDate = DateTimeFormatter.ofPattern("dd-MMMM-yyyy"); LocalDate localDate = LocalDate.of(2021, 11, 19); String localDateString = formatDate.format(localDate); System.out.println(); System.out.println(localDateString); System.out.println(localDate); } }
===============================================================
OUTPUT
45.789 45.78864469
19-November-2021
2021-11-19