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:

Please add some!

Sample Code:

Please add some!

Alternative Managed API:

// 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></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