Skip to content

Commit d9680cf

Browse files
authored
feat: method to convert duration to ISO8601 duration string (#544)
1 parent 0a21a4f commit d9680cf

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

projects/common/src/time/time-duration.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ describe('Time duration', () => {
77
expect(new TimeDuration(4, TimeUnit.Hour).toMillis()).toBe(4 * 60 * 60 * 1000);
88
});
99

10+
test('converts to ISO 8601 duration string correctly', () => {
11+
expect(new TimeDuration(1, TimeUnit.Hour).toIso8601DurationString()).toBe('PT3600S');
12+
});
13+
1014
test('can print a multi unit string', () => {
1115
expect(
1216
new TimeDuration(4 * 60 * 60 * 1000 + 3 * 60 * 1000 + 5 * 1000 + 689, TimeUnit.Millisecond).toMultiUnitString(

projects/common/src/time/time-duration.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ export class TimeDuration {
1616
return this.toMillis() / this.unitInMillis(unit);
1717
}
1818

19+
public toIso8601DurationString(): string {
20+
return `PT${this.toMillis() / 1000}S`;
21+
}
22+
1923
public toMultiUnitString(
2024
smallestUnit: ConvertibleTimeUnit = TimeUnit.Second,
2125
displayZero: boolean = true,

0 commit comments

Comments
 (0)