<p>Here is a quick test program:</p>

<pre><code>    public static void main( String[] args )
{
    Date date = Calendar.getInstance().getTime();

    System.out.println("Months:");
    printDate( "MMMM", "en", date );
    printDate( "MMMM", "es", date );
    printDate( "MMMM", "fr", date );
    printDate( "MMMM", "de", date );

    System.out.println("Days:");
    printDate( "EEEE", "en", date );
    printDate( "EEEE", "es", date );
    printDate( "EEEE", "fr", date );
    printDate( "EEEE", "de", date );

}

public static void printDate( String format, String locale, Date date )
{
    System.out.println( locale + ": " + (new SimpleDateFormat( format, new Locale( locale ) )).format( date ) );
}
</code></pre>

<p>The output is:</p>

<p><code>
Months:
en: September
es: septiembre
fr: septembre
de: September
Days:
en: Monday
es: lunes
fr: lundi
de: Montag</code></p>

<p>How can I control the capitalization of the names. For some reason the Spanish and French always seem to return names that start with a lowercase letter.</p>

[{'answer_id': 66771, 'author': 'Chris Shaffer', 'author_id': 6744, 'author_profile': 'https://Stackoverflow.com/users/6744', 'pm_score': 3, 'selected': False, 'text': '<p>You may not want to change the capitalization -- different cultures capitalize different words (for example, in German you capitalize every noun, not just proper nouns).</p>\n'}, {'answer_id': 66784, 'author': 'brabster', 'author_id': 2362, 'author_profile': 'https://Stackoverflow.com/users/2362', 'pm_score': 5, 'selected': True, 'text': '<p>Not all languages share english capitalization rules. I guess you\'d need to alter the data used by the API, but your non-english clients might not appreciate it...</p>\n\n<p><a href="http://french.about.com/library/writing/bl-capitalization.htm" rel="noreferrer">about.com on french capitalization</a></p>\n'}, {'answer_id': 66794, 'author': 'Dan Dyer', 'author_id': 5171, 'author_profile': 'https://Stackoverflow.com/users/5171', 'pm_score': 3, 'selected': False, 'text': '<p>Capitalisation rules are different for different languages.  In French, month names <a href="http://french.about.com/library/writing/bl-capitalization.htm" rel="noreferrer">should not be capitalised</a>.</p>\n'}, {'answer_id': 15253817, 'author': 'rajat banerjee', 'author_id': 59890, 'author_profile': 'https://Stackoverflow.com/users/59890', 'pm_score': 0, 'selected': False, 'text': '<p>I\'m having a problem now where a sentence begins with "dimanche 07 mars", which wouldn\'t matter if it were not at the beginning of a sentence. I guess this cannot be changed, unless I do manual string manipulation on the first character of the string.</p>\n'}, {'answer_id': 45249515, 'author': 'Basil Bourque', 'author_id': 642706, 'author_profile': 'https://Stackoverflow.com/users/642706', 'pm_score': 3, 'selected': False, 'text': '<h1>tl;dr</h1>\n\n<blockquote>\n  <p>How can I control the capitalization of the names</p>\n</blockquote>\n\n<p>You don’t. Different languages and different cultures have different rules about capitalization, punctuation, abbreviation, etc.</p>\n\n<h2><code>getDisplayName</code> — automatically localize</h2>\n\n<pre><code>Month.from( LocalDate.now( ZoneId.of( "Pacific/Auckland" ) ) )    // Get current month.\n     .getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH )     // Localize automatically. Specify `Locale` to determine human language and cultural norms for translation. \n</code></pre>\n\n<blockquote>\n  <p>février</p>\n</blockquote>\n\n<pre><code>LocalDate.now( ZoneId.of( "Pacific/Auckland" ) )                  // Get current date as seen by people in a certain region (time zone).\n    .getDayOfWeek()                                               // Get the day-of-week as a pre-defined `DayOfWeek` enum object.\n    .getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH )\n</code></pre>\n\n<blockquote>\n  <p>lundi</p>\n</blockquote>\n\n<h1>Localize</h1>\n\n<p>As others stated, you should not be forcing your own parochial (US English?) notions of capitalization. Use a decent date-time library, and let it automatically localize for you.</p>\n\n<h1>java.time</h1>\n\n<p>You are using terrible old date-time classes that are now legacy, supplanted by the java.time classes.</p>\n\n<p>The <a href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html" rel="nofollow noreferrer"><code>LocalDate</code></a> class represents a date-only value without time-of-day and without time zone.</p>\n\n<p>A time zone is crucial in determining a date. For any given moment, the date varies around the globe by zone. For example, a few minutes after midnight in <a href="https://en.wikipedia.org/wiki/Europe/Paris" rel="nofollow noreferrer">Paris France</a> is a new day while still “yesterday” in <a href="https://en.wikipedia.org/wiki/America/Montreal" rel="nofollow noreferrer">Montréal Québec</a>.</p>\n\n<p>Specify a <a href="https://en.wikipedia.org/wiki/List_of_tz_zones_by_name" rel="nofollow noreferrer">proper time zone name</a> in the format of <code>continent/region</code>, such as <a href="https://en.wikipedia.org/wiki/America/Montreal" rel="nofollow noreferrer"><code>America/Montreal</code></a>, <a href="https://en.wikipedia.org/wiki/Africa/Casablanca" rel="nofollow noreferrer"><code>Africa/Casablanca</code></a>, or <code>Pacific/Auckland</code>. Never use the 3-4 letter abbreviation such as <code>EST</code> or <code>IST</code> as they are <em>not</em> true time zones, not standardized, and not even unique(!). </p>\n\n<pre><code>ZoneId z = ZoneId.of( "Asia/Kolkata" );\nLocalDate today = LocalDate.now( z );\n</code></pre>\n\n<p>To work with a month, extract a <a href="https://docs.oracle.com/javase/8/docs/api/java/time/Month.html" rel="nofollow noreferrer"><code>Month</code></a> enum object. Ditto for day-of-week, <a href="https://docs.oracle.com/javase/8/docs/api/java/time/DayOfWeek.html" rel="nofollow noreferrer"><code>DayOfWeek</code></a>. </p>\n\n<p>Call <code>getDisplayName</code>. Pass a <a href="https://docs.oracle.com/javase/8/docs/api/java/time/format/TextStyle.html" rel="nofollow noreferrer"><code>TextStyle</code></a> for abbreviation. Pass a <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Locale.html" rel="nofollow noreferrer"><code>Locale</code></a> to determine (a) the human language for translation of name of day, name of month, and such, and (b) the cultural norms deciding issues of abbreviation, capitalization, punctuation, separators, and such. Note that <code>Locale</code> has <em>nothing</em> to do with time zone.</p>\n\n<pre><code>Month m = today.getMonth() ;\nString mNameQuébec = m.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) ; \nString mNameGermany = m.getDisplayName( TextStyle.FULL , Locale.GERMANY ) ; \n</code></pre>\n\n<p>…and…</p>\n\n<pre><code>DayOfWeek dow = today.getDayOfWeek() ;\nString dowNameQuébec = dow.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) ; \nString dowNameGermany = dow.getDisplayName( TextStyle.FULL , Locale.GERMANY ) ; \n</code></pre>\n\n<h1>About <em>java.time</em></h1>\n\n<p>The <a href="http://docs.oracle.com/javase/9/docs/api/java/time/package-summary.html" rel="nofollow noreferrer"><em>java.time</em></a> framework is built into Java 8 and later. These classes supplant the troublesome old <a href="https://en.wikipedia.org/wiki/Legacy_system" rel="nofollow noreferrer">legacy</a> date-time classes such as <a href="https://docs.oracle.com/javase/9/docs/api/java/util/Date.html" rel="nofollow noreferrer"><code>java.util.Date</code></a>, <a href="https://docs.oracle.com/javase/9/docs/api/java/util/Calendar.html" rel="nofollow noreferrer"><code>Calendar</code></a>, &amp; <a href="http://docs.oracle.com/javase/9/docs/api/java/text/SimpleDateFormat.html" rel="nofollow noreferrer"><code>SimpleDateFormat</code></a>.</p>\n\n<p>The <a href="http://www.joda.org/joda-time/" rel="nofollow noreferrer"><em>Joda-Time</em></a> project, now in <a href="https://en.wikipedia.org/wiki/Maintenance_mode" rel="nofollow noreferrer">maintenance mode</a>, advises migration to the <a href="http://docs.oracle.com/javase/9/docs/api/java/time/package-summary.html" rel="nofollow noreferrer">java.time</a> classes.</p>\n\n<p>To learn more, see the <a href="http://docs.oracle.com/javase/tutorial/datetime/TOC.html" rel="nofollow noreferrer"><em>Oracle Tutorial</em></a>. And search Stack Overflow for many examples and explanations. Specification is <a href="https://jcp.org/en/jsr/detail?id=310" rel="nofollow noreferrer">JSR 310</a>.</p>\n\n<p>With a <a href="https://en.wikipedia.org/wiki/JDBC_driver" rel="nofollow noreferrer">JDBC driver</a> complying with <a href="http://openjdk.java.net/jeps/170" rel="nofollow noreferrer">JDBC 4.2</a> or later, you may exchange <em>java.time</em> objects directly with your database. No need for strings or java.sql.* classes.</p>\n\n<p>Where to obtain the java.time classes? </p>\n\n<ul>\n<li><a href="https://en.wikipedia.org/wiki/Java_version_history#Java_SE_8" rel="nofollow noreferrer"><strong>Java SE 8</strong></a>, <a href="https://en.wikipedia.org/wiki/Java_version_history#Java_SE_9" rel="nofollow noreferrer"><strong>Java SE 9</strong></a>, and later\n\n<ul>\n<li>Built-in. </li>\n<li>Part of the standard Java API with a bundled implementation.</li>\n<li>Java 9 adds some minor features and fixes.</li>\n</ul></li>\n<li><a href="https://en.wikipedia.org/wiki/Java_version_history#Java_SE_6" rel="nofollow noreferrer"><strong>Java SE 6</strong></a> and <a href="https://en.wikipedia.org/wiki/Java_version_history#Java_SE_7" rel="nofollow noreferrer"><strong>Java SE 7</strong></a>\n\n<ul>\n<li>Much of the java.time functionality is back-ported to Java 6 &amp; 7 in <a href="http://www.threeten.org/threetenbp/" rel="nofollow noreferrer"><strong><em>ThreeTen-Backport</em></strong></a>.</li>\n</ul></li>\n<li><a href="https://en.wikipedia.org/wiki/Android_(operating_system)" rel="nofollow noreferrer"><strong>Android</strong></a>\n\n<ul>\n<li>Later versions of Android bundle implementations of the java.time classes.</li>\n<li>For earlier Android, the <a href="https://github.com/JakeWharton/ThreeTenABP" rel="nofollow noreferrer"><strong><em>ThreeTenABP</em></strong></a> project adapts <em>ThreeTen-Backport</em> (mentioned above). See <a href="http://stackoverflow.com/q/38922754/642706"><em>How to use ThreeTenABP…</em></a>.</li>\n</ul></li>\n</ul>\n\n<p>The <a href="http://www.threeten.org/threeten-extra/" rel="nofollow noreferrer"><strong>ThreeTen-Extra</strong></a> project extends java.time with additional classes. This project is a proving ground for possible future additions to java.time. You may find some useful classes here such as <a href="http://www.threeten.org/threeten-extra/apidocs/org/threeten/extra/Interval.html" rel="nofollow noreferrer"><code>Interval</code></a>, <a href="http://www.threeten.org/threeten-extra/apidocs/org/threeten/extra/YearWeek.html" rel="nofollow noreferrer"><code>YearWeek</code></a>, <a href="http://www.threeten.org/threeten-extra/apidocs/org/threeten/extra/YearQuarter.html" rel="nofollow noreferrer"><code>YearQuarter</code></a>, and <a href="http://www.threeten.org/threeten-extra/apidocs/index.html" rel="nofollow noreferrer">more</a>.</p>\n'}]
['https://Stackoverflow.com/questions/66750', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/9661/']