2012-04-02 16 views

Respuesta

9

Bueno, los nombres de los meses también se pueden localizar. Y tal vez en algunas culturas exóticas los años se cuentan de una manera diferente también.

EDIT:
Ejemplo:

string x = "Montag, 2. April 2012"; 
DateTime dt1, dt2; 
bool r1 = DateTime.TryParseExact(x, "D", new CultureInfo("de-DE"), 0, out dt1); 
bool r2 = DateTime.TryParseExact(x, "D", new CultureInfo("en-US"), 0, out dt2); 

(r1 == true, r2 == false).

O revés:

string y = "Monday, April 02, 2012"; 
DateTime dt3, dt3; 
bool r3 = DateTime.TryParseExact(y, "D", new CultureInfo("de-DE"), 0, out dt3); 
bool r4 = DateTime.TryParseExact(y, "D", new CultureInfo("en-US"), 0, out dt4); 

(r3 == false, r2 == true).

+0

Ejemplo, por favor ??????? –

+0

@Royi: mira la respuesta editada. – Vlad

+1

es alemán ('de-DE') para el lunes (¿pero quizás podrías compartir la imagen con nosotros?) – Vlad

4

Porque la cadena de formato no es literal. Por ejemplo, usó "/" y ":" pero para la cadena de entrada es necesario utilizar los separadores date y time suministrados por el CultureInfo.

Imagínese esta cadena de formato: M/d/aaaa
Estas entradas son todas válidas:

  • 04/02/2012 (de referencia cultural de todos, EE.UU.);
  • 04.02.2012 (para Finlandia)
  • 04-02-2012 (para Marruecos)

Además de la simple especificador de "M" puede ser [1..12] o [1..13] , dependiendo del calendario en sí (ver MSDN).

Como "vela en la tarta" la función es genérica, por lo que puede requerir en el formato de cadena un valor localizado (o dependiente del país) (piense en los nombres de días de la semana o el año especificado, por ejemplo, en chino o en japonés) .

+0

No entiendo, ¿me pueden explicar? –

+0

la cadena "M/d/aaaa" es un especificador de formato para "4/2/2012" en la cultura de EE. UU. Pero es una entrada válida, por ejemplo, "4-2-2012" también para la cultura árabe.El carácter "/" significa "el separador de fecha predeterminado para la cultura dada". De todos modos, actualicé la respuesta con un ejemplo. –

+0

pero ** im ** ¡diciéndole qué son los separadores! Escribí x/xx/xxx así que es '/' ... –

0

Usted necesita decir que la cultura, ya que si se le pasa el formato dd-mmm-aaaa luego pasar en 01/05/2012

En Inglés que podrían ser 01-mayo-2012

Pero en otra cultura sería 01-Mai-2012

Cuestiones relacionadas