Please, note that 21 January is Sunday, not Wednesday, let's change 21 to 3 and perform a standard trick: parse text into DateTime and then format it into desired string representation:
using System.Globalization;
...
string text = "Wednesday, 3. January 2024";
var result = DateTime
.ParseExact(text, "dddd', 'd'. 'MMMM' 'yyyy", CultureInfo.InvariantCulture)
.ToString("dd.MM.yyyy", CultureInfo.InvariantCulture);
If original text is in German (Deutsch culture, say de-DE) it should be
Mittwoch, 3. Januar 2024
and we have
string text = "Mittwoch, 3. Januar 2024";
var result = DateTime
.ParseExact(text, "dddd', 'd'. 'MMMM' 'yyyy", CultureInfo.GetCultureInfo("de-DE"))
.ToString("dd.MM.yyyy", CultureInfo.GetCultureInfo("de-DE"));
Finally, you can try using current culture (German on your workstation)
string text = "Mittwoch, 3. Januar 2024";
var result = DateTime
.ParseExact(text, "dddd', 'd'. 'MMMM' 'yyyy", CultureInfo.CurrentCulture)
.ToString("dd.MM.yyyy");