Question

I'm trying to set custom culture in my project. But I have some problem I've searched Google and found the following code. But I have some problems with it, please observe it in the comment.

using System;
using System.IO;
using System.Globalization;

public class Example 
{
    public static void Main() 
    {
        // Persist the date and time data.
        StreamWriter sw = new StreamWriter(@".\DateData.dat");

        // Create a DateTime value.      
        DateTime dtIn = DateTime.Now;
        // Retrieve a CultureInfo object.
        CultureInfo invC = CultureInfo.InvariantCulture;

        // Convert the date to a string and write it to a file.
        sw.WriteLine(dtIn.ToString("r", invC));//what r mean?. if r is the custem culture      variabel then how we determin it.
        sw.Close();

        // Restore the date and time data.
        StreamReader sr = new StreamReader(@".\DateData.dat");
        String input;
        while ((input = sr.ReadLine()) != null) 
        {
            Console.WriteLine("Stored data: {0}\n" , input);    

            // Parse the stored string.
            DateTime dtOut = DateTime.Parse(input, invC, DateTimeStyles.RoundtripKind);

            // Create a French (France) CultureInfo object.
            CultureInfo frFr = new CultureInfo("fr-FR");
            // Displays the date formatted for the "fr-FR" culture.
            Console.WriteLine("Date formatted for the {0} culture: {1}" , 
                       frFr.Name, dtOut.ToString("f", frFr));// f?

            // Creates a German (Germany) CultureInfo object.
            CultureInfo deDe= new CultureInfo("de-De");
            // Displays the date formatted for the "de-DE" culture.
            Console.WriteLine("Date formatted for {0} culture: {1}" , 
                       deDe.Name, dtOut.ToString("f", deDe));
        }
        sr.Close();
    }
}
Était-ce utile?

La solution

Here's a link that shows many formatting values for the DateTime.ToString() method. I see no lower case "r" mentioned but the output of your code seems be the same with "R" or "r".

http://msdn.microsoft.com/en-us/library/zdtaw1bw.aspx

The DateTime value that you are writing to the file would be based on the invariant culture before any culture changes. You write it out and the you read it back in before getting some new culture information.

I had to guess at what you were asking because there is no question anywhere but in the code. Please provide more detail if I misunderstood what you are asking about.

Maybe if you were to show your output, it would help.

Ah, and here's a link that actually says that "r" is the same as "R". So now you have documentation for that part of your question:

http://msdn.microsoft.com/en-us/library/az4se3k1.aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top