Private
Public Access
1
0

Normalize all DateTime values to UTC across the codebase

Npgsql requires DateTimeKind.Utc for timestamp with time zone
columns. This fixes errors in transaction create/edit, budgets,
reports, loans, scheduled transactions, and file imports.

Changes:
- TransactionService: SpecifyKind on request.Date for create,
  update, and transfer
- BudgetService: UTC kind on all new DateTime(year, month, 1)
- ReportService: UTC kind on endOfMonth; rewrite spending-by-
  category GroupBy to avoid untranslatable navigation properties
- LoanService: UTC kind on payoff scenario date construction
- ScheduledTransactionService: UTC kind on SemiMonthly date
- ImportService: SpecifyKind on parsed.Date when persisting
- OFX/CSV/QIF parsers: AssumeUniversal + AdjustToUniversal on
  all date parsing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Catherine Renelle
2026-02-09 01:07:26 -05:00
parent bcb4a74158
commit 8b2f5aad56
9 changed files with 31 additions and 22 deletions
+1 -1
View File
@@ -52,7 +52,7 @@ public class CSVParserPlugin : IFileParser
if (mapping.DateColumn >= 0)
{
var dateStr = csv.GetField(mapping.DateColumn);
if (DateTime.TryParse(dateStr, CultureInfo.InvariantCulture, DateTimeStyles.None, out var date))
if (DateTime.TryParse(dateStr, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal, out var date))
transaction.Date = date;
}