开发者

How can I get date and time formats based on Culture Info?

开发者 https://www.devze.com 2023-01-29 00:45 出处:网络
What I want is.. If culture is en-US then string dateFormat=\"MM/dd/yyyy\"; string timeFormat=\"24.00 hrs\";

What I want is.. If culture is en-US then

string dateFormat="MM/dd/yyyy"; 
string timeFormat="24.00 hrs";

If culture is en-GB then

string dateFormat="dd/mmyyyy"; 
string timeFormat="24.00 hrs";

and so on for other countries..

Now how do I get these date and time format values ? What are the standards? Like which all countries use similar date/time formats and which ones don't ?

ok I tried this :-

 DateTime myDate = new DateTime();
   string us = myDate.ToString(new CultureInfo("en-US"));

string us gets value =1/1/0001 12:00:00 AM

Now how do I extract "dd/mm/yyyy" and "24.00 hrs" out of this...in my Dateformat column in my Table... I want to store STRINGS such as dd/mm/yyyy or mm/dd/yyyy NOT dates..In my TimeFormat column in the table, the values to be stores are STRINGS too, like I need to store either "24:00hrs" or "12:00hrs"

How do I do this now ?

**using ShorTimePattern returns these values as

h:mm tt and HH:mm

If I want to store the values in my DB exactly as "24:00hrs" and "12:00hrs", how do I use these values..h:mm tt and HH:mm which one is for 24 hr format and which for 12 hr format ?**

ok now there's another problem too...I want the information about Decimal S开发者_JS百科eparator and Thousand Separator too based on the CultureInfo...whats the property for that ?


You can retrieve the format strings from the CultureInfo DateTimeFormat property, which is a DateTimeFormatInfo instance. This in turn has properties like ShortDatePattern and ShortTimePattern, containing the format strings:

CultureInfo us = new CultureInfo("en-US");
string shortUsDateFormatString = us.DateTimeFormat.ShortDatePattern;
string shortUsTimeFormatString = us.DateTimeFormat.ShortTimePattern;

CultureInfo uk = new CultureInfo("en-GB");
string shortUkDateFormatString = uk.DateTimeFormat.ShortDatePattern;
string shortUkTimeFormatString = uk.DateTimeFormat.ShortTimePattern;

If you simply want to format the date/time using the CultureInfo, pass it in as your IFormatter when converting the DateTime to a string, using the ToString method:

string us = myDate.ToString(new CultureInfo("en-US"));
string uk = myDate.ToString(new CultureInfo("en-GB"));


// Try this may help

string us = DateTime.Now.Date.ToString("MM/dd/yyyy",new CultureInfo("en-US"));

or

 string us = DateTime.Now.Date.ToString("dd/MM/yyyy",new CultureInfo("en-GB"));


You could take a look at the DateTimeFormat property which contains the culture specific formats.


Use a CultureInfo like this, from MSDN:

// Creates a CultureInfo for German in Germany.
CultureInfo ci = new CultureInfo("de-DE");

// Displays dt, formatted using the CultureInfo
Console.WriteLine(dt.ToString(ci));

More info on MSDN. Here is a link of all different cultures.


Try setting a custom CultureInfo for CurrentCulture and CurrentUICulture:

Globalization.CultureInfo customCulture = new Globalization.CultureInfo("en-US", true);

customCulture.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd h:mm tt";

System.Threading.Thread.CurrentThread.CurrentCulture = customCulture;
System.Threading.Thread.CurrentThread.CurrentUICulture = customCulture;

DateTime newDate = System.Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd h:mm tt"));


Culture can be changed for a specific cell in grid view.

<%# DateTime.ParseExact(Eval("contractdate", "{0}"), "MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture).ToString("dd/MM/yyyy", System.Globalization.CultureInfo.CurrentCulture) %>

For more detail check the link.

Date Format Issue in Gridview binding with #eval()

0

精彩评论

暂无评论...
验证码 换一张
取 消