diff --git a/lib/modules/datasource/maven/util.ts b/lib/modules/datasource/maven/util.ts
index 1edc357068e5cdde5791c6eacb8dfeee4e6ed4ad..dd6fd41961fd7dfb9c50ec0c956e099e51f55319 100644
--- a/lib/modules/datasource/maven/util.ts
+++ b/lib/modules/datasource/maven/util.ts
@@ -12,8 +12,8 @@ import { Result } from '../../../util/result';
 import type { S3UrlParts } from '../../../util/s3';
 import { getS3Client, parseS3Url } from '../../../util/s3';
 import { streamToString } from '../../../util/streams';
+import { asTimestamp } from '../../../util/timestamp';
 import { ensureTrailingSlash, parseUrl } from '../../../util/url';
-import { normalizeDate } from '../metadata';
 import { getGoogleAuthToken } from '../util';
 import { MAVEN_REPO } from './common';
 import type {
@@ -83,7 +83,7 @@ export async function downloadHttpProtocol(
         result.isCacheable = true;
       }
 
-      const lastModified = normalizeDate(res?.headers?.['last-modified']);
+      const lastModified = asTimestamp(res?.headers?.['last-modified']);
       if (lastModified) {
         result.lastModified = lastModified;
       }
@@ -203,7 +203,7 @@ export async function downloadS3Protocol(
         const data = await streamToString(Body);
         const result: MavenFetchSuccess = { data };
 
-        const lastModified = normalizeDate(LastModified);
+        const lastModified = asTimestamp(LastModified);
         if (lastModified) {
           result.lastModified = lastModified;
         }
@@ -276,7 +276,7 @@ async function checkHttpResource(
     const res = await http.head(pkgUrl.toString());
     const timestamp = res?.headers?.['last-modified'];
     if (timestamp) {
-      const isoTimestamp = normalizeDate(timestamp);
+      const isoTimestamp = asTimestamp(timestamp);
       if (isoTimestamp) {
         const releaseDate = DateTime.fromISO(isoTimestamp, {
           zone: 'UTC',
diff --git a/lib/modules/datasource/metadata.spec.ts b/lib/modules/datasource/metadata.spec.ts
index 0b49c803ce8db82b2c5c37634d12bb6e7706b975..645d270f98ae1bf2b58ce6a29a9334bbe7760632 100644
--- a/lib/modules/datasource/metadata.spec.ts
+++ b/lib/modules/datasource/metadata.spec.ts
@@ -5,7 +5,6 @@ import {
   addMetaData,
   massageGithubUrl,
   massageUrl,
-  normalizeDate,
   shouldDeleteHomepage,
 } from './metadata';
 import { NpmDatasource } from './npm';
@@ -521,23 +520,4 @@ describe('modules/datasource/metadata', () => {
       sourceUrl: 'https://github.com/flyingcircusio/pycountry',
     });
   });
-
-  describe('normalizeDate()', () => {
-    it('works for number input', () => {
-      const now = Date.now();
-      expect(normalizeDate(now)).toBe(new Date(now).toISOString());
-    });
-
-    it('works for string input', () => {
-      expect(normalizeDate('2021-01-01')).toBe(
-        new Date('2021-01-01').toISOString(),
-      );
-    });
-
-    it('works for Date instance', () => {
-      expect(normalizeDate(new Date('2021-01-01'))).toBe(
-        new Date('2021-01-01').toISOString(),
-      );
-    });
-  });
 });
diff --git a/lib/modules/datasource/metadata.ts b/lib/modules/datasource/metadata.ts
index bdfbe258b026454a1e6024c848f7776196848a87..6fe5efa54a465a3206d2da6c54f1dc0c20d71431 100644
--- a/lib/modules/datasource/metadata.ts
+++ b/lib/modules/datasource/metadata.ts
@@ -1,10 +1,10 @@
 import is from '@sindresorhus/is';
 import parse from 'github-url-from-git';
-import { DateTime } from 'luxon';
 import { detectPlatform } from '../../util/common';
 import { parseGitUrl } from '../../util/git/url';
 import * as hostRules from '../../util/host-rules';
 import { regEx } from '../../util/regex';
+import { asTimestamp } from '../../util/timestamp';
 import { isHttpUrl, parseUrl, trimTrailingSlash } from '../../util/url';
 import { manualChangelogUrls, manualSourceUrls } from './metadata-manual';
 import type { ReleaseResult } from './types';
@@ -64,59 +64,11 @@ function massageGitAtUrl(url: string): string {
   return massagedUrl;
 }
 
-/**
- * @deprecated Use `asTimestamp` instead
- */
-export function normalizeDate(input: any): string | null {
-  if (
-    typeof input === 'number' &&
-    !Number.isNaN(input) &&
-    input > 0 &&
-    input <= Date.now() + 24 * 60 * 60 * 1000
-  ) {
-    return new Date(input).toISOString();
-  }
-
-  if (typeof input === 'string') {
-    // `Date.parse()` is more permissive, but it assumes local time zone
-    // for inputs like `2021-01-01`.
-    //
-    // Here we try to parse with default UTC with fallback to `Date.parse()`.
-    //
-    // It allows us not to care about machine timezones so much, though
-    // some misinterpretation is still possible, but only if both:
-    //
-    //   1. Renovate machine is configured for non-UTC zone
-    //   2. Format of `input` is very exotic
-    //      (from `DateTime.fromISO()` perspective)
-    //
-
-    let luxonDate = DateTime.fromISO(input, { zone: 'UTC' });
-    if (luxonDate.isValid) {
-      return luxonDate.toISO();
-    }
-    luxonDate = DateTime.fromFormat(input, 'yyyyMMddHHmmss', {
-      zone: 'UTC',
-    });
-    if (luxonDate.isValid) {
-      return luxonDate.toISO();
-    }
-
-    return normalizeDate(Date.parse(input));
-  }
-
-  if (input instanceof Date) {
-    return input.toISOString();
-  }
-
-  return null;
-}
-
 function massageTimestamps(dep: ReleaseResult): void {
   for (const release of dep.releases || []) {
     let { releaseTimestamp } = release;
     delete release.releaseTimestamp;
-    releaseTimestamp = normalizeDate(releaseTimestamp);
+    releaseTimestamp = asTimestamp(releaseTimestamp);
     if (releaseTimestamp) {
       release.releaseTimestamp = releaseTimestamp;
     }
diff --git a/lib/modules/datasource/nuget/__snapshots__/index.spec.ts.snap b/lib/modules/datasource/nuget/__snapshots__/index.spec.ts.snap
index e668b57267e71e6ac343a4f22eb33fce0c47ac14..9b1702cc94ed93080ce0d244c34e7a1edd937ba0 100644
--- a/lib/modules/datasource/nuget/__snapshots__/index.spec.ts.snap
+++ b/lib/modules/datasource/nuget/__snapshots__/index.spec.ts.snap
@@ -34,7 +34,6 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v2) 1`]
       "version": "2.5.10.11092",
     },
     {
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "2.6.0.12051",
     },
     {
@@ -228,7 +227,6 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) fee
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "2.6.0.12051",
     },
     {
@@ -418,7 +416,6 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) fee
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "2.6.0.12051",
     },
     {
@@ -604,12 +601,10 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) for
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "2.0.1",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "2.0.1.1",
     },
     {
@@ -638,7 +633,6 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) for
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.0.0-rc",
     },
     {
@@ -651,12 +645,10 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) for
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.1.0-alpha1",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.1.0-rc1",
     },
     {
@@ -665,7 +657,6 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) for
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.1.1-rc1",
     },
     {
@@ -678,7 +669,6 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) for
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.2.0-rc1",
     },
     {
@@ -687,7 +677,6 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) for
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.2.1-rc1",
     },
     {
@@ -704,52 +693,42 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) for
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.3.0-alpha1",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.3.0-alpha2",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.3.0-alpha3",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.3.0-alpha4",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.3.0-beta1",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.3.0-beta2",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.3.0-beta3",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.3.0-rc1",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.3.0-rc2",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.3.0-rc3",
     },
     {
@@ -758,7 +737,6 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) for
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.3.1-rc1",
     },
     {
@@ -779,7 +757,6 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) for
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.3.5-alpha1",
     },
     {
@@ -800,7 +777,6 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) for
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.3.9-test-retry-archive",
     },
     {
@@ -817,112 +793,90 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) for
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.0-alpha1",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.0-alpha2",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.0-alpha3",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.0-alpha4",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.0-beta-14",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.0-beta1",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.0-beta10",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.0-beta11",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.0-beta12",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.0-beta13",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.0-beta2",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.0-beta3",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.0-beta4",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.0-beta5",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.0-beta6",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.0-beta7",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.0-beta8",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.0-beta9",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.0-betaV14",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.0-betaV15",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.0-rc1",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.0-rc2",
     },
     {
@@ -931,12 +885,10 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) for
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.1-dev-b4084",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.1-dev-b4085",
     },
     {
@@ -945,12 +897,10 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) for
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.2-rc1",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.2-rc2",
     },
     {
@@ -967,7 +917,6 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) for
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.5-beta1",
     },
     {
@@ -976,22 +925,18 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) for
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.6-beta1",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.6-beta2",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.6-beta3",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.4.6-rc1",
     },
     {
@@ -1028,97 +973,78 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) for
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.5.0-alpha01",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.5.0-alpha02",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.5.0-alpha03",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.5.0-alpha04",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.5.0-beta01",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.5.0-beta02",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.5.0-beta03",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.5.0-beta04",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.5.0-beta05",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.5.0-beta06",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.5.0-beta07",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.5.0-beta08",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.5.0-rc01",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.5.0-rc02",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.5.0-rc03",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.5.0-rc04",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.5.0-rc05",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.5.0-rc06",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.5.0-rc07",
     },
     {
@@ -1171,17 +1097,14 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) for
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.6.0-rc1",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.6.0-rc2",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.6.0-rc3",
     },
     {
@@ -1222,7 +1145,6 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) for
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "4.7.0-rc1",
     },
     {
@@ -1243,67 +1165,54 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) for
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "5.0.0-beta01",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "5.0.0-beta02",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "5.0.0-beta03",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "5.0.0-beta03-tryoutMutex",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "5.0.0-beta04",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "5.0.0-beta05",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "5.0.0-beta05-test",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "5.0.0-beta06",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "5.0.0-beta07",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "5.0.0-beta08",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "5.0.0-beta09",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "5.0.0-beta10",
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "5.0.0-beta11",
     },
   ],
@@ -1329,7 +1238,6 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) nus
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "2.6.0.12051",
     },
     {
@@ -1519,7 +1427,6 @@ exports[`modules/datasource/nuget/index getReleases processes real data (v3) nus
     },
     {
       "isDeprecated": true,
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "2.6.0.12051",
     },
     {
@@ -1868,7 +1775,6 @@ exports[`modules/datasource/nuget/index getReleases returns deduplicated results
     {
       "isDeprecated": true,
       "registryUrl": "https://api.nuget.org/v3/index.json",
-      "releaseTimestamp": "1900-01-01T00:00:00.000Z",
       "version": "2.6.0.12051",
     },
     {