GetDateFormat (kernel32)
Last changed: -131.107.0.88

.
Summary

C# Signature:

[DllImport("kernel32.dll")]
static extern int GetDateFormat(uint Locale, uint dwFlags, IntPtr lpDate,
   string lpFormat, [Out] StringBuilder lpDateStr, int cchDate);

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Don't bother to use this call, use the framework instead.

Sample Code:

Please add some!

Alternative Managed API:

// Note: I couldn't make the GetDateFormat call work in C# but this works a treat!

    /// <summary> Provide a translated long date using the given format. </summary>
    /// <param name="languageConstant">Also known as the Locale.</param>
    /// <param name="date">DateTime in a FileTime (int64) format.</param>
    /// <param name="dateFormatString">Standard date format string.</param>
    /// <returns>Long date translated for the given locale.</returns>
    internal static string GetTranslatedDateString(long languageConstant, long date, string dateFormatString)
    {
        if (languageConstant == 0 || date == 0 || dateFormatString == null) { return null; }
        try
        {
            // Translate our particular chosen date format into a .Net DateTime
            DateTime dateTime = DateTime.FromFileTime(date);
            // Create a culture info object for the given culture (could use the string e.g. "DE-de" as an                     // alternative)
            CultureInfo cultureInfo = new CultureInfo((int)languageConstant);

            cultureInfo.DateTimeFormat.LongDatePattern = dateFormatString;
            DateTimeFormatInfo dtFormatInfo = cultureInfo.DateTimeFormat;
            return dateTime.ToString("D", dtFormatInfo);
        }
        catch (Exception ex)  { // etc. }
    }

Documentation