A comprehensive utility library for Light-4J microservices framework providing string manipulation, networking, I/O, security, and configuration utilities.
—
Time unit conversions and ISO 8601 date formatting utilities for consistent time handling across microservices. Provides standardized time operations and date formatting for distributed systems.
Time unit conversion utilities for working with different time units and timestamp calculations.
/**
* Time unit conversion utilities
*/
public class TimeUtil {
/**
* Converts time unit to milliseconds
* @param timeUnit - TimeUnit to convert
* @return Milliseconds for one unit of the specified time unit
*/
public static long oneTimeUnitMillisecond(TimeUnit timeUnit);
/**
* Gets next rounded timestamp for the given time unit
* @param timeUnit - Time unit for rounding
* @param start - Starting timestamp
* @return Next timestamp rounded to the time unit boundary
*/
public static long nextStartTimestamp(TimeUnit timeUnit, long start);
}ISO 8601 date formatting and parsing utilities for standardized date handling.
/**
* ISO 8601 date formatting and parsing
*/
public class DateUtil {
/**
* Formats date as ISO 8601 string
* @param date - Instant to format
* @return ISO 8601 formatted date string
*/
public static String formatIso8601Date(Instant date);
/**
* Parses ISO 8601 date string to Instant
* @param dateString - ISO 8601 date string
* @return Parsed Instant
*/
public static Instant parseIso8601Date(String dateString);
/**
* Parses ISO 8601 date string to milliseconds
* @param dateString - ISO 8601 date string
* @return Milliseconds since epoch
*/
public static long parseIso8601DateToMillis(String dateString);
}Usage Examples:
import com.networknt.utility.TimeUtil;
import com.networknt.utility.DateUtil;
import java.time.Instant;
import java.util.concurrent.TimeUnit;
// Time unit conversions
long secondInMillis = TimeUtil.oneTimeUnitMillisecond(TimeUnit.SECONDS); // 1000
long minuteInMillis = TimeUtil.oneTimeUnitMillisecond(TimeUnit.MINUTES); // 60000
long hourInMillis = TimeUtil.oneTimeUnitMillisecond(TimeUnit.HOURS); // 3600000
// Timestamp rounding
long currentTime = System.currentTimeMillis();
long nextMinute = TimeUtil.nextStartTimestamp(TimeUnit.MINUTES, currentTime);
long nextHour = TimeUtil.nextStartTimestamp(TimeUnit.HOURS, currentTime);
// ISO 8601 date formatting
Instant now = Instant.now();
String isoDate = DateUtil.formatIso8601Date(now);
// Result: "2023-12-25T10:30:45.123Z"
// ISO 8601 date parsing
String dateString = "2023-12-25T10:30:45.123Z";
Instant parsed = DateUtil.parseIso8601Date(dateString);
long millis = DateUtil.parseIso8601DateToMillis(dateString);
// Microservice timestamp coordination
public class EventLogger {
public void logEvent(String event) {
Instant timestamp = Instant.now();
String isoTimestamp = DateUtil.formatIso8601Date(timestamp);
System.out.println(isoTimestamp + " - " + event);
}
public void scheduleNextExecution(TimeUnit interval, long currentTime) {
long nextExecution = TimeUtil.nextStartTimestamp(interval, currentTime);
// Schedule task at nextExecution
}
}
// Time-based cache expiration
public class TimeBasedCache {
private final long ttlMillis;
public TimeBasedCache(long amount, TimeUnit unit) {
this.ttlMillis = amount * TimeUtil.oneTimeUnitMillisecond(unit);
}
public boolean isExpired(long creationTime) {
return System.currentTimeMillis() - creationTime > ttlMillis;
}
}Install with Tessl CLI
npx tessl i tessl/maven-com-networknt--utility