Skip to main content

Examples

Basic Parsing and Formatting

import com.petarmc.durationparser.DurationParser;
import java.time.Duration;

public class Example {
public static void main(String[] args) {
// Parse different formats
DurationParser parser1 = DurationParser.parse("1d 2h 30m");
DurationParser parser2 = DurationParser.parse("90 minutes");
DurationParser parser3 = DurationParser.parse("45s");

// Access the Duration
Duration d1 = parser1.duration();
System.out.println("Duration: " + d1); // PT26H30M

// Format in different ways
System.out.println("Short: " + parser1.toShortString()); // "1d2h30m"
System.out.println("Compact: " + parser1.toCompactString()); // "1d 2h 30m"
System.out.println("Long: " + parser1.toLongString()); // "1 day, 2 hours and 30 minutes"
}
}

Converting Between Formats

DurationParser parser = DurationParser.parse("2 hours 30 minutes");

// All formats
System.out.println(parser.toShortString()); // "2h30m"
System.out.println(parser.toCompactString()); // "2h 30m"
System.out.println(parser.toLongString()); // "2 hours and 30 minutes"

Working with Duration Objects

// Create from Duration
Duration duration = Duration.ofHours(5).plusMinutes(45);
DurationParser parser = new DurationParser(duration);

System.out.println(parser.toLongString()); // "5 hours and 45 minutes"

// Parse and manipulate
DurationParser parsed = DurationParser.parse("1h 30m");
Duration modified = parsed.duration().plusMinutes(15);
DurationParser newParser = new DurationParser(modified);

System.out.println(newParser.toCompactString()); // "1h 45m"

Error Handling

try {
DurationParser invalid = DurationParser.parse("invalid input");
} catch (IllegalArgumentException e) {
System.out.println("Error: " + e.getMessage());
}

try {
DurationParser negative = DurationParser.parse("-1h");
} catch (IllegalArgumentException e) {
System.out.println("Error: " + e.getMessage());
}

Real-world Usage

// Configuration parsing
String timeoutConfig = "30m";
DurationParser timeout = DurationParser.parse(timeoutConfig);
Duration timeoutDuration = timeout.duration();

// Logging
System.out.println("Operation timed out after " + timeout.toLongString());

// Cache expiration
String cacheTtl = "1h";
DurationParser cacheParser = DurationParser.parse(cacheTtl);
long ttlSeconds = cacheParser.duration().getSeconds();