Skip to content

Commit a40a3d3

Browse files
committed
FINERACT-2326: Use Datetime with micro seconds precision
1 parent bd8b4fe commit a40a3d3

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/DateUtils.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,12 @@ public final class DateUtils {
4646

4747
public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";
4848
public static final String DEFAULT_DATETIME_FORMAT = DEFAULT_DATE_FORMAT + " HH:mm:ss";
49+
public static final String DEFAULT_MICRO_SECOND_FORMAT = "[.SSSSSS]";
50+
public static final String DEFAULT_DATETIME_MICROSECOND_FORMAT = DEFAULT_DATETIME_FORMAT + DEFAULT_MICRO_SECOND_FORMAT;
4951
public static final DateTimeFormatter DEFAULT_DATE_FORMATTER = DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT);
5052
public static final DateTimeFormatter DEFAULT_DATETIME_FORMATTER = DateTimeFormatter.ofPattern(DEFAULT_DATETIME_FORMAT);
53+
public static final DateTimeFormatter DEFAULT_DATETIME_MICROSECOND_FORMATTER = DateTimeFormatter
54+
.ofPattern(DEFAULT_DATETIME_MICROSECOND_FORMAT);
5155

5256
private DateUtils() {
5357

fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/DatabaseSpecificSQLGenerator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,9 +131,9 @@ public String currentTenantDate() {
131131

132132
public String currentTenantDateTime() {
133133
if (databaseTypeResolver.isMySQL()) {
134-
return format("TIMESTAMP('%s')", DateUtils.getLocalDateTimeOfSystem().format(DateUtils.DEFAULT_DATETIME_FORMATTER));
134+
return format("TIMESTAMP('%s')", DateUtils.getLocalDateTimeOfSystem().format(DateUtils.DEFAULT_DATETIME_MICROSECOND_FORMATTER));
135135
} else if (databaseTypeResolver.isPostgreSQL()) {
136-
return format("TIMESTAMP '%s'", DateUtils.getLocalDateTimeOfSystem().format(DateUtils.DEFAULT_DATETIME_FORMATTER));
136+
return format("TIMESTAMP '%s'", DateUtils.getLocalDateTimeOfSystem().format(DateUtils.DEFAULT_DATETIME_MICROSECOND_FORMATTER));
137137
} else {
138138
throw new IllegalStateException("Database type is not supported for current date time" + databaseTypeResolver.databaseType());
139139
}

fineract-core/src/main/java/org/apache/fineract/portfolio/search/service/SearchUtil.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
import static java.util.Locale.ENGLISH;
2222
import static org.apache.fineract.infrastructure.core.data.ApiParameterError.parameterErrorWithValue;
23-
import static org.apache.fineract.infrastructure.core.service.DateUtils.DEFAULT_DATETIME_FORMAT;
23+
import static org.apache.fineract.infrastructure.core.service.DateUtils.DEFAULT_DATETIME_MICROSECOND_FORMAT;
2424
import static org.apache.fineract.infrastructure.core.service.DateUtils.DEFAULT_DATE_FORMAT;
2525
import static org.apache.fineract.infrastructure.dataqueries.api.DataTableApiConstant.API_FIELD_MANDATORY;
2626
import static org.apache.fineract.portfolio.search.SearchConstants.API_PARAM_COLUMN;
@@ -289,7 +289,7 @@ public Object parseColumnValue(@NonNull ResultsetColumnHeaderData columnHeader,
289289
return JsonParserHelper.convertFrom(columnValue, columnHeader.getColumnName(), format, locale);
290290
}
291291
if (colType.isDateTimeType()) {
292-
String format = dateTimeFormat == null ? DEFAULT_DATETIME_FORMAT : dateTimeFormat;
292+
String format = dateTimeFormat == null ? DEFAULT_DATETIME_MICROSECOND_FORMAT : dateTimeFormat;
293293
return JsonParserHelper.convertDateTimeFrom(columnValue, columnHeader.getColumnName(), format, locale);
294294
}
295295
if (colType.isAnyIntegerType()) {

0 commit comments

Comments
 (0)