I am interested in using NLog in my C# project and found it great, but
In my country Clients works with "Persian Calendar".
As you know Microsoft developed a library to support named "C# Persian Calendar class".
I need Persian calendar date format in two places
1-Message Time stamp
2-Date based File Name
How to force NLog to use " C# Persian Calendar class" in above usages?
Thanks
There are two difficulties with this:
DateTime.ToString
won't work anyway :(You'll definitely need to look into the source code (or at least documentation) for NLog to find out whether there's a way of configuring the formatting. Once you've worked out how to get your own code to be executed there - e.g. by writing your own subclass, potentially - you'll need to work out how to do the actualy formatting.
You could do this using the BCL, calling into PersianCalendar
and doing simple numeric formatting. Or you could use my Noda Time library, which also has Persian calendar support (as of Noda Time 1.3). You'd want something like:
var gregorian = new LocalDate(2014, 11, 6); // Or whatever
var persian = gregorian.WithCalendar(CalendarSystem.GetPersianCalendar());
var text = persian.ToString("yyyy-MM-dd"); // Or create a LocalDatePattern
See more on this question at Stackoverflow