public static void Main()
var person = new Person();
person.Name = "Danish Farman";
person.DateOfBirth = "10/03/1986";
Console.WriteLine("Before dynamic updated format assignment");
Console.WriteLine(JsonConvert.SerializeObject(person));
var formatter = new DateTimeStringFormatter<Person>();
formatter.Convert(person);
Console.WriteLine("After dynamic updated format assignment");
Console.WriteLine(JsonConvert.SerializeObject(person));
public string DateOfBirth
public class DateTimeStringFormatter<T>
private string convertIntoFormat = "dd MMM yyyy";
private string dateTimeParserFormat = "dd/MM/yyyy";
private string propertyContainsText = "date";
public void Convert(T valueToCheck)
PropertyInfo[] properties = type.GetProperties();
foreach (PropertyInfo property in properties)
if (property.Name.ToLower().Contains(propertyContainsText))
var input = property.GetValue(valueToCheck, null).ToString();
if (DateTime.TryParseExact(input, dateTimeParserFormat, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out dateTime))
Console.WriteLine(dateTime.ToString(convertIntoFormat));
property.SetValue(valueToCheck, dateTime.ToString(convertIntoFormat));