in src/main/java/com/epam/parso/date/SasTemporalFormatter.java [58:89]
public Object formatSasDate(Double sasDays, OutputDateType dateFormatType,
String sasFormatName, int width, int precision) {
if (dateFormatType == SAS_VALUE) {
return sasDays;
} else if (sasDays == null || Double.isNaN(sasDays)) {
if (dateFormatType == SAS_FORMAT_EXPERIMENTAL || dateFormatType == SAS_FORMAT_TRIM_EXPERIMENTAL) {
return ".";
} else {
return null;
}
}
sasDays = sasLeapDaysFix(sasDays);
switch (dateFormatType) {
case EPOCH_SECONDS:
return sasDaysToEpochSeconds(sasDays);
case JAVA_TEMPORAL:
return sasDaysToLocalDate(sasDays);
case SAS_FORMAT_EXPERIMENTAL:
case SAS_FORMAT_TRIM_EXPERIMENTAL:
boolean trim = dateFormatType == SAS_FORMAT_TRIM_EXPERIMENTAL;
return dateFormatFunctions.computeIfAbsent(sasFormatName + width + "." + precision,
k -> SasDateFormat.valueOf(sasFormatName).getFormatFunction(width, precision,
trim)
).apply(sasDays);
case JAVA_DATE_LEGACY:
default:
return sasDaysToDate(sasDays);
}
}