DateTime time = DateTime.Now; string s = time.ToString("yyyy.MM.dd hh:mm:ss t\\M"); Console.WriteLine(s);
Explanation:t
gives the first character of the AM/PM designator (the localized designator can be retrieved inDateTimeFormatInfo.AMDesignator
andDateTimeFormatInfo.PMDesignator
). The\\M
escapes theM
so thatDateTime.ToString
does not interpret it as part of the format string and print the numerical value of the month.
Note that once you do this you are explicitly being culture insensitive. For example, in Japan, the AM/PM designator differs in the second characters, not the first.