Multiple things are intertwining.
With the current code setup, datetime2
is ignoring the option:
Package datetime2 Warning: Region `he' has ignored
(datetime2) the following settings:
(datetime2) showdayofmonth=false
and polyglossia
is calculating the date via hebrewcal.sty
where the output routine hard-codes the day number using a formatting command defined as:
\def\@FormatForHebrew#1#2#3{%
\Hebrewnumeral{#1}~ב\HebrewMonthName{#2}{#3}~%
\HebrewYearName{#3}}
To fix that, as a workaround, put the following code in the preamble, before \begin{document}
:
\makeatletter
\def\@FormatForHebrew#1#2#3{%
\HebrewMonthName{#2}{#3}~%
\HebrewYearName{#3}}
\makeatother
so that \today
produces this:

Alternatively, to restrict the redefinition to a particular instance only, use braces {
}
and put the code in the body of the document with the \today
command, such that
\today
{
\makeatletter
\def\@FormatForHebrew#1#2#3{%
\HebrewMonthName{#2}{#3}~%
\HebrewYearName{#3}}
\makeatother
\today
}
\today
produces this:

MWE
\documentclass{article}
\usepackage{polyglossia}
\setdefaultlanguage{hebrew}
\setmainfont{Arial}
\setmonofont{Arial}
\setsansfont{Arial}
\usepackage[useregional]{datetime2}
\DTMlangsetup[he]{showdayofmonth=false}
%%for global change:
%\makeatletter
%\def\@FormatForHebrew#1#2#3{%
% \HebrewMonthName{#2}{#3}~%
% \HebrewYearName{#3}}
%\makeatother
\begin{document}
\today
{
\makeatletter
\def\@FormatForHebrew#1#2#3{%
\HebrewMonthName{#2}{#3}~%
\HebrewYearName{#3}}
\makeatother
\today
}
\today
\end{document}
A longer-term solution will require deeper investigation, particularly as multi-way package interactions are involved.