tbDate: add DateTimeFormatter
This commit is contained in:
parent
9ad845099d
commit
f1a751db5a
@ -28,7 +28,6 @@ import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZoneOffset;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.time.chrono.IsoChronology;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.format.DateTimeFormatterBuilder;
|
||||
import java.time.format.DateTimeParseException;
|
||||
@ -94,7 +93,10 @@ public class TbDate implements Serializable, Cloneable {
|
||||
}
|
||||
|
||||
public ZonedDateTime getZonedDateTime() {
|
||||
return instant.atZone(zoneIdUTC);
|
||||
return getZonedDateTime(zoneIdUTC);
|
||||
}
|
||||
public ZonedDateTime getZonedDateTime(ZoneId zoneId) {
|
||||
return instant.atZone(zoneId);
|
||||
}
|
||||
|
||||
public LocalDateTime getLocalDateTime() {
|
||||
@ -149,13 +151,21 @@ public class TbDate implements Serializable, Cloneable {
|
||||
public String toString(String localeStr, String optionsStr) {
|
||||
return toLocaleString(localeStr, optionsStr, (locale, options) -> DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL, FormatStyle.FULL).withLocale(locale));
|
||||
}
|
||||
public String toISOZonedDateTimeString() {
|
||||
public String toZonedDateTimeString() {
|
||||
return getZonedDateTime().toString();
|
||||
}
|
||||
public String toISOZonedDateTimeString(DateTimeFormatter formatter) {
|
||||
public String toZonedDateTimeString(DateTimeFormatter formatter) {
|
||||
return getZonedDateTime().format(formatter);
|
||||
}
|
||||
|
||||
public String toZonedDateTimeString(String zoneIdStr) {
|
||||
return getZonedDateTime(ZoneId.of(zoneIdStr)).toString();
|
||||
}
|
||||
public String toZonedDateTimeString(DateTimeFormatter formatter, String zoneIdStr) {
|
||||
return getZonedDateTime(ZoneId.of(zoneIdStr)).format(formatter);
|
||||
}
|
||||
|
||||
|
||||
public String toLocaleDateString() {
|
||||
return toLocaleDateString(localeUTC.getLanguage());
|
||||
}
|
||||
|
||||
@ -365,19 +365,33 @@ class TbDateTest {
|
||||
TbDate d1 = new TbDate(23, 9, 7, 8, 4, 5, "+04:00");
|
||||
TbDate d2 = new TbDate(23, 9, 7, 8, 4, 5, "-03:00");
|
||||
|
||||
Assert.assertEquals("2023-09-07T04:04:05Z[UTC]", d1.toISOZonedDateTimeString());
|
||||
Assert.assertEquals("2023-09-07T04:04:05Z", d1.toISOZonedDateTimeString(DateTimeFormatter.ISO_OFFSET_DATE_TIME));
|
||||
Assert.assertEquals("2023-09-07T04:04:05Z[UTC]", d1.toISOZonedDateTimeString(DateTimeFormatter.ISO_ZONED_DATE_TIME));
|
||||
Assert.assertEquals("2023-09-07T04:04:05", d1.toISOZonedDateTimeString(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
|
||||
Assert.assertEquals("Thu, 7 Sep 2023 04:04:05 GMT", d1.toISOZonedDateTimeString(DateTimeFormatter.RFC_1123_DATE_TIME));
|
||||
Assert.assertEquals("2023-09-07T04:04:05Z", d1.toISOZonedDateTimeString(DateTimeFormatter.ISO_INSTANT));
|
||||
Assert.assertEquals("2023-09-07T04:04:05Z[UTC]", d1.toZonedDateTimeString());
|
||||
Assert.assertEquals("2023-09-07T04:04:05Z", d1.toZonedDateTimeString(DateTimeFormatter.ISO_OFFSET_DATE_TIME));
|
||||
Assert.assertEquals("2023-09-07T04:04:05Z[UTC]", d1.toZonedDateTimeString(DateTimeFormatter.ISO_ZONED_DATE_TIME));
|
||||
Assert.assertEquals("2023-09-07T04:04:05", d1.toZonedDateTimeString(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
|
||||
Assert.assertEquals("Thu, 7 Sep 2023 04:04:05 GMT", d1.toZonedDateTimeString(DateTimeFormatter.RFC_1123_DATE_TIME));
|
||||
Assert.assertEquals("2023-09-07T04:04:05Z", d1.toZonedDateTimeString(DateTimeFormatter.ISO_INSTANT));
|
||||
|
||||
Assert.assertEquals("2023-09-07T11:04:05Z[UTC]", d2.toISOZonedDateTimeString());
|
||||
Assert.assertEquals("2023-09-07T11:04:05Z", d2.toISOZonedDateTimeString(DateTimeFormatter.ISO_OFFSET_DATE_TIME));
|
||||
Assert.assertEquals("2023-09-07T11:04:05Z[UTC]", d2.toISOZonedDateTimeString(DateTimeFormatter.ISO_ZONED_DATE_TIME));
|
||||
Assert.assertEquals("2023-09-07T11:04:05", d2.toISOZonedDateTimeString(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
|
||||
Assert.assertEquals("Thu, 7 Sep 2023 11:04:05 GMT", d2.toISOZonedDateTimeString(DateTimeFormatter.RFC_1123_DATE_TIME));
|
||||
Assert.assertEquals("2023-09-07T11:04:05Z", d2.toISOZonedDateTimeString(DateTimeFormatter.ISO_INSTANT));
|
||||
Assert.assertEquals("2023-09-07T11:04:05Z[UTC]", d2.toZonedDateTimeString());
|
||||
Assert.assertEquals("2023-09-07T11:04:05Z", d2.toZonedDateTimeString(DateTimeFormatter.ISO_OFFSET_DATE_TIME));
|
||||
Assert.assertEquals("2023-09-07T11:04:05Z[UTC]", d2.toZonedDateTimeString(DateTimeFormatter.ISO_ZONED_DATE_TIME));
|
||||
Assert.assertEquals("2023-09-07T11:04:05", d2.toZonedDateTimeString(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
|
||||
Assert.assertEquals("Thu, 7 Sep 2023 11:04:05 GMT", d2.toZonedDateTimeString(DateTimeFormatter.RFC_1123_DATE_TIME));
|
||||
Assert.assertEquals("2023-09-07T11:04:05Z", d2.toZonedDateTimeString(DateTimeFormatter.ISO_INSTANT));
|
||||
}
|
||||
@Test
|
||||
void TestZoneDateTimeFormatterToString () {
|
||||
TbDate d1 = new TbDate(23, 9, 7, 8, 4, 5, "-04:00");
|
||||
Assert.assertEquals("2023-09-07T12:04:05Z[UTC]", d1.toZonedDateTimeString());
|
||||
Assert.assertEquals("2023-09-07T12:04:05Z", d1.toZonedDateTimeString(DateTimeFormatter.ISO_INSTANT,"America/New_York"));
|
||||
Assert.assertEquals("2023-09-07T08:04:05-04:00", d1.toZonedDateTimeString(DateTimeFormatter.ISO_OFFSET_DATE_TIME,"America/New_York"));
|
||||
Assert.assertEquals("2023-09-07T08:04:05-04:00[America/New_York]", d1.toZonedDateTimeString("America/New_York"));
|
||||
Assert.assertEquals("Thu, 7 Sep 2023 08:04:05 -0400", d1.toZonedDateTimeString(DateTimeFormatter.RFC_1123_DATE_TIME,"America/New_York"));
|
||||
|
||||
Assert.assertEquals("2023-09-07T14:04:05+02:00[Europe/Berlin]", d1.toZonedDateTimeString("Europe/Berlin"));
|
||||
Assert.assertEquals("2023-09-07T14:04:05+02:00", d1.toZonedDateTimeString(DateTimeFormatter.ISO_OFFSET_DATE_TIME,"Europe/Berlin"));
|
||||
Assert.assertEquals("2023-09-08T02:04:05+14:00[Etc/GMT-14]", d1.toZonedDateTimeString("Etc/GMT-14"));
|
||||
Assert.assertEquals("2023-09-07T00:04:05-12:00[Etc/GMT+12]", d1.toZonedDateTimeString("Etc/GMT+12"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user