TheGeneGenieProject / GeneGenie.Gedcom

A .Net library for loading, saving, working with and analysing family trees stored in the GEDCOM format.
GNU Affero General Public License v3.0
52 stars 23 forks source link

GedcomDate: DateString in Output unchanged? #81

Open OkapiD opened 4 years ago

OkapiD commented 4 years ago

When repairing Gedcom data I have to modify GedcomDates by setting Date1, Date2 or using gedComDate.ParseDateString(mydatestring). I.e. mydatestring = "9.4.1721" (German localisation and it means 9 APR 1721). Parsing is correct. DateTime1 is filled. But Date1 and DateString is unchanged and output is 2 DATE 9.4.1721 Gedcomvalidator would prefer 2 DATE 9 APR 1721. I found no way to refresh the output values.

kman73 commented 1 year ago

Use System.Globalization to avoid cultural date formatting. Convert your text to date and then use .ToString(0 to reformat.

CultureInfo invC = CultureInfo.InvariantCulture;

GedcomChangeDate gedcomChangeDateF = new GedcomChangeDate(database); gedcomChangeDateF.Date1 = Convert.ToDateTime(family.changedate).ToString("d MMM yyyy", invC).ToUpper(); gedcomChangeDateF.Time = Convert.ToDateTime(family.changedate).ToString("hh:mm", invC); gedcomFamilyRecord.ChangeDate = gedcomChangeDateF;