GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing javaevolved.dev β HexFormat | java.evolved
Date/Time
Intermediate
Convert between hex strings and byte arrays with HexFormat. Code Comparison
β Java 8
// Pad to 2 digits, uppercase
String hex = String.format(
"%02X", byteValue);
// Parse hex string
int val = Integer.parseInt(
"FF", 16);
β Java 17+
var hex = HexFormat.of()
.withUpperCase();
String s = hex.toHexDigits(
byteValue);
byte[] bytes =
hex.parseHex("48656C6C6F");
See a problem with this code? Let us know.
Why the modern way wins
π
BidirectionalConvert bytesβhex and hexβbytes with one API. π§
ConfigurableDelimiters, prefix, suffix, upper/lower case. π¦
Array supportEncode/decode entire byte arrays at once. Old Approach
Manual Hex Conversion
Modern Approach
HexFormat
Since JDK
17
Difficulty
Intermediate
JDK Support
HexFormat
Available
Widely available since JDK 17 LTS (Sept 2021) How it works
HexFormat provides bidirectional hex encoding/decoding for bytes, ints, and arrays. Configure delimiters, prefix, suffix, and case. No more manual formatting or parsing. Related Documentation
Proof
Related patterns
Date/Time
Beginner
Date formattingPre-Java 8
// Not thread-safe!
SimpleDateFormat sdf =
new SimpleDateFormat("yyyy-MM-dd");
String formatted = sdf.format(date);
// Must synchronize for concurrent use
Java 8+
DateTimeFormatter fmt =
DateTimeFormatter.ofPattern(
"uuuu-MM-dd");
String formatted =
LocalDate.now().format(fmt);
// Thread-safe, immutable
JDK 8+
β
Date/Time
Intermediate
Instant with nanosecond precisionJava 8
// Millisecond precision only
long millis =
System.currentTimeMillis();
// 1708012345678
Java 9+
// Microsecond/nanosecond precision Instant now = Instant.now(); // 2025-02-15T20:12:25.678901234Z long nanos = now.getNano();
JDK 9+
β
Date/Time
Beginner
Duration and PeriodPre-Java 8
// How many days between two dates?
long diff = date2.getTime()
- date1.getTime();
long days = diff
/ (1000 * 60 * 60 * 24);
// ignores DST, leap seconds
Java 8+
long days = ChronoUnit.DAYS
.between(date1, date2);
Period period = Period.between(
date1, date2);
Duration elapsed = Duration.between(
time1, time2);
JDK 8+
β
|
| You are visitor 01402503 β GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800Γ600. No cookies required. |