The issue is that for correct output WP needs to process date through date_i18n()
function. When you use date format, hardcoded in PHP code (not simply saved in PHP DATE_*
constant) like 'c'
– it’s not available to your code and so for WP to process.
System-wide fix would be to re-process date with analogous format that can be accessed by WP code:
add_filter( 'date_i18n', 'fix_c_time_format', 10, 4 );
function fix_c_time_format( $date, $format, $timestamp, $gmt ) {
if ( 'c' == $format )
$date = date_i18n( DATE_ISO8601, $timestamp, $gmt );
return $date;
}