如何获取格式(DD/MM或MM/DD)的DateTime,但要考虑区域性



所以我有一个问题,我想把日期显示为07/04,就像4月7日一样,但这需要考虑区域性。因此,如果用户使用en-US,则需要显示为04/07。

我已经厌倦了使用MonthDayPattern,但它给出的月份是四月而不是07。

我有一个可行的想法,那就是使用ToShortDate,它给出dd/MM/yyyy或MM/dd/yyyy,然后删除yyyy部分,它给出了正确的区域性格式,但这感觉有点麻烦,我相信有一个格式化程序可以做到这一点。

澄清更新:

我希望月份和日期以数字显示,如07(表示日期(和04(表示月份(,但按区域性给定的顺序显示。

不,我不相信有这样的内置日期格式。如标准日期和时间格式字符串中所述,最接近的是"M"格式说明符,它使用当前区域性的DateTimeFormatInfo.MonthDayPattern属性。在许多文化中,输出并不是你想要的。例如,在美国,它是"4月17日">

所以我决定采用与吉米建议的类似方法。对于这种情况,我只需要格式化字符串,因为实际的格式化是由接受该格式的共享类完成的。我采用了一种方法来发送一种我想要操作的格式,在本例中是ShortDate。然后我发送我想使用的日期部分,在这种情况下是天和月。然后,我拆分ShortDate,删除我不想解析的部分,并使用DateSeparator将其连接回字符串。它并不完美,因为它在当前迭代中无法处理时间(或多个不同的分隔符(,但它在这一点上做了它需要做的事情。

最新更新