Извините за это ужасно сложное решение, но оно даст вам именно то, что вы хотите в XSLT 1.0:
<xsl:variable name="months" select="'JanFebMarAprMayJunJulAugSepOctDec'" />
<xsl:variable name="weekdays" select="'Monday Tuesday WednesdayThursday Friday Saturday Sunday '" />
<xsl:template match="date">
<xsl:variable name="days">
<xsl:value-of select="
((substring(.,7,4) - 1970) * 365)+floor((substring(.,7,4) - 1970) div 4)+
substring('000,031,059,090,120,151,181,212,243,273,304,334,365',substring(.,1,2)*4-3,3)+
(substring(.,4,2)-1)+
(1-floor(((substring(.,7,4) mod 4) + 2) div 3))*floor((substring(.,1,2)+17) div 20)
" />
</xsl:variable>
<xsl:value-of select="concat(
normalize-space(substring($weekdays,(($days+3) mod 7) * 9 + 1, 9)),
', ',
substring($months,substring(.,1,2) * 3 - 2, 3),
' ',
substring(.,4,2) + 0,
', ',
substring(.,7,4)
)" />
</xsl:template>
При построении переменной 'days' используется довольно сложная формула, которая определяет количество дней с 01.01.1970. Оттуда очень просто добавить 3 (потому что 01.01.1970 был четверг) и взять мод 7 этой цифры, чтобы получить день недели из переменной weekdays
с substr
.
Если вы собираетесь много работать с датами, получите XSLT2!