今天在使用日期转换函式时,发现年分会显示成民国年,而不是预想的西元年:
原本以为是特定状况触发的bug,为此检查好久的程式,却没有发现异常的地方,
查了资料后才发现,作业系统的日期设定格式是会影响到日期呈现的,
这个格式设定的优先度会大于日期转换函式指定的格式:
第一种处理的方式就是将日期格式设定还原回预设值,
若系统环境不允许变更日期格式,或是使用预设日期格式仍无效(我遇到这个情况),
可以使用System.Globalization.DateTimeFormatInfo,
就能够产出不受作业系统设定影响的通用日期格式
DateTime.Now.ToString("yyyy/MM/dd", System.Globalization.DateTimeFormatInfo.InvariantInfo)
使用之后,果然就正常显示出西元年了~