Skip to content

Instantly share code, notes, and snippets.

@marschall
marschall / SwissDecimalFormatTest.java
Created March 5, 2019 09:05
Decimal Formatting Changes in Java 11
class SwissDecimalFormatTest {
@Test
void decimalFormat() {
Locale switzerland = new Locale("de", "CH");
DecimalFormat format = (DecimalFormat) NumberFormat.getInstance(switzerland);
format.applyPattern("#,##0.00");
String formatted = format.format(new BigDecimal("1234567.8"));
assertEquals("1'234'567.80", formatted);
@marschall
marschall / PortableDecimalFormatTest.java
Created March 5, 2019 10:14
Portable Decimal Formatting
class PortableDecimalFormatTest {
@Test
void decimalFormat() {
Locale switzerland = new Locale("de", "CH");
DecimalFormat format = (DecimalFormat) NumberFormat.getInstance(switzerland);
format.applyPattern("#,##0.00");
DecimalFormatSymbols decimalFormatSymbols = format.getDecimalFormatSymbols();
decimalFormatSymbols.setGroupingSeparator('\'');
// important because #getDecimalFormatSymbols() returns a clone
@marschall
marschall / oracle_calendar.sql
Created August 2, 2019 08:16
Shows the Oracle calendar is not proleptic
WITH calendar(date_value) AS (
SELECT TIMESTAMP '1582-09-30 00:00:00'
FROM dual
UNION ALL
SELECT date_value + 1
FROM calendar
WHERE date_value <= TIMESTAMP '1582-10-16 00:00:00'
)
SELECT date_value
FROM calendar;