hora - formato fecha datetime c#
¿Cómo puedo obtener formatos de fecha y hora basados en información de cultura? (5)
// Prueba esto puede ayudar
DateTime myDate = new DateTime();
string us = myDate.Now.Date.ToString("MM/dd/yyyy",new CultureInfo("en-US"));
o
DateTime myDate = new DateTime();
string us = myDate.Now.Date.ToString("dd/MM/yyyy",new CultureInfo("en-GB"));
Lo que quiero es ... Si la cultura es en-US entonces
string dateFormat="MM/dd/yyyy";
string timeFormat="24.00 hrs";
Si la cultura es en-GB entonces
string dateFormat="dd/mmyyyy";
string timeFormat="24.00 hrs";
y así sucesivamente para otros países ..
Ahora, ¿cómo obtengo estos valores de formato de fecha y hora? ¿Cuáles son las normas? ¿Cómo todos los países utilizan formatos de fecha / hora similares y cuáles no?
ok intenté esto: -
DateTime myDate = new DateTime();
string us = myDate.ToString(new CultureInfo("en-US"));
la cadena us obtiene el valor = 1/1/0001 12:00:00 AM
Ahora, ¿cómo extraigo "dd / mm / aaaa" y "24.00 horas" de esto ... en mi columna de Formato de fecha en mi tabla ... Quiero almacenar CUERDAS como dd / mm / aaaa o mm / dd / yyyy NO fechas. En mi columna de TimeFormat en la tabla, los valores para ser tiendas también son STRINGS, como necesito almacenar "24: 00hrs" o "12: 00hrs"
¿Cómo hago esto ahora?
** usando ShorTimePattern devuelve estos valores como
h:mm tt and HH:mm
Si quiero almacenar los valores en mi DB exactamente como "24: 00hrs" y "12: 00hrs", ¿cómo uso estos valores ... h: mm tt y HH: mm cuál es para el formato de 24 horas y cuál para 12 horas de formato? **
ok, también hay otro problema ... Quiero que la información sobre el separador decimal y el separador de miles también se base en el CultureInfo ... ¿cuál es la propiedad para eso?
Intente establecer un CultureInfo
personalizado para CurrentCulture
y 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"));
Puede echar un vistazo a la propiedad DateTimeFormat que contiene los formatos específicos de cultura.
Puede recuperar las cadenas de formato de la propiedad DateTimeFormat
CultureInfo
, que es una instancia de DateTimeFormatInfo
. Esto a su vez tiene propiedades como ShortDatePattern
y ShortTimePattern
, que contienen las cadenas de formato:
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;
Si simplemente desea formatear la fecha / hora usando CultureInfo
, páselo como su IFormatter
cuando convierta DateTime
a una cadena, usando el método ToString
:
string us = myDate.ToString(new CultureInfo("en-US"));
string uk = myDate.ToString(new CultureInfo("en-GB"));