From 16118d635c256a97e9fb6f97d653174c4dbab11d Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 25 Dec 2022 12:38:40 +0100 Subject: [PATCH] Bugfix/fix date conversion of two digit year (#1529) * Fix date conversion of two digit year * Update changelog --- CHANGELOG.md | 4 ++++ apps/client/src/app/adapter/custom-date-adapter.ts | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index da0c08822..a845c22d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Removed the data source type `RAKUTEN` +### Fixed + +- Fixed the date conversion for years with only two digits + ## 1.220.0 - 2022-12-23 ### Added diff --git a/apps/client/src/app/adapter/custom-date-adapter.ts b/apps/client/src/app/adapter/custom-date-adapter.ts index af57c567a..663c91b72 100644 --- a/apps/client/src/app/adapter/custom-date-adapter.ts +++ b/apps/client/src/app/adapter/custom-date-adapter.ts @@ -2,7 +2,7 @@ import { Platform } from '@angular/cdk/platform'; import { Inject, forwardRef } from '@angular/core'; import { MAT_DATE_LOCALE, NativeDateAdapter } from '@angular/material/core'; import { getDateFormatString } from '@ghostfolio/common/helper'; -import { format, parse } from 'date-fns'; +import { addYears, format, getYear, parse } from 'date-fns'; export class CustomDateAdapter extends NativeDateAdapter { public constructor( @@ -31,6 +31,16 @@ export class CustomDateAdapter extends NativeDateAdapter { * Parses a date from a provided value */ public parse(aValue: string): Date { - return parse(aValue, getDateFormatString(this.locale), new Date()); + let date = parse(aValue, getDateFormatString(this.locale), new Date()); + + if (getYear(date) < 1900) { + if (getYear(date) > Number(format(new Date(), 'yy')) + 1) { + date = addYears(date, 1900); + } else { + date = addYears(date, 2000); + } + } + + return date; } }