Hola Fernando, parece que la cosa viene por este lado. Si lo ejecuta el IIS,
el resultado es

Identidad: PCDEV\ASPNET

Actual: - Invariant Language (Invariant Country)
ShortDatePattern: MM/dd/yyyy
Fecha: ERROR

es-AR: es-AR - Spanish (Argentina)
ShortDatePattern: M/d/yyyy
Fecha: ERROR

es-UY: es-UY - Spanish (Uruguay)
ShortDatePattern: dd/MM/yyyy
Fecha: 30/01/2007 12:00:00 a.m.

en-US: en-US - English (United States)
ShortDatePattern: M/d/yyyy
Fecha: ERROR


Si lo ejecuto en el servidor de VS

Identidad: PCDEV\Juan

Actual: - Invariant Language (Invariant Country)
ShortDatePattern: MM/dd/yyyy
Fecha: ERROR

es-AR: es-AR - Spanish (Argentina)
ShortDatePattern: dd/MM/yyyy
Fecha: 30/01/2007 12:00:00 a.m.

es-UY: es-UY - Spanish (Uruguay)
ShortDatePattern: dd/MM/yyyy
Fecha: 30/01/2007 12:00:00 a.m.

en-US: en-US - English (United States)
ShortDatePattern: M/d/yyyy
Fecha: ERROR

Por otro lado, en el web.config tengo

<globalization culture="es-ar" uiCulture="es-ar"/>

Todo este tema me genera los siguientes interrogantes:

-independietemente de quien ejecute la pagina (IIS o VS), es-AR no deberia
ser siempre dd/MM/yyyy ?

-en ambos casos, como actual me aparece "invariant country", significa que
lo del web.config no lo esta considerando?

Mucha gracias por tu ayuda.

Saludos

Juan









  -----Original Message-----
  From: [email protected] [mailto:[EMAIL PROTECTED] Behalf Of
Fernando Tubio
  Sent: Jueves, 01 de Marzo de 2007 08:07 p.m.
  To: [email protected]
  Subject: [puntonet] Culture Info


  Hmmm... Muy extraño.

  De cualquier forma parece que al probar el código que envié hubo algún
error de transcripción, ya que debería mostrar el texto "Actual" solo en el
primer caso. Aunque no creo que esto vaya a afectar el resultado final,
sería conveniente verificar el código, no vaya a ser que el diagnóstico nos
desoriente aún más.

  El primer resultado es bastante extraño ya que corresponde al llamado a
TestCulture con un parámetro nulo, es decir que si el código ejecutado
coincide con aquel que envié, entonces en este caso en particular no debería
inicializar la cultura de la página sino tomar el valor que ya viene
configurado, y como se trata de la primera prueba, este es el valor que
supuestamente ASP.NET asignó a partir de la configuración de web.config.  El
resultado muestra que la cultura configurada corresponde a la 'Invariant
Culture', o sea que fue inicializada con un string vacío (y *no* nulo).

  El segundo resultado también es inesperado ya que muestra que la
configuración de la cultura "es-AR" no es la habitual.

  ¿Con cual servidor ocurre esto, IIS o el servidor de desarrollo que viene
con Visual Studio? Si se trata del segundo, entonces hay que tener en cuenta
que en ese caso el proceso ASP.NET ejecuta con la identidad del usuario
logueado actualmente. Si la configuración regional de ese usuario fue
modificada esto podría explicar los resultados que estás observando, aunque
a primera vista no parece explicar el primer resultado.

  Modificá Page_Load de la siguiente forma para identificar el usuario con
el cual ejecuta el proceso, de tal forma que puedas examinar su
configuración regional.

      protected void Page_Load ( object sender, EventArgs e )
      {
          status.Text = "Identidad: "  +
System.Security.Principal.WindowsIdentity.GetCurrent().Name +  "<br><br>"
                      + TestCulture( null )
                      + TestCulture( "es-AR" )
                      + TestCulture( "es-UY" )
                      + TestCulture( "en-US" );
      }


  Saludos,

  Fernando Tubio


  ----- Original Message -----
    From: Juan Granillo
    To: [email protected]
    Sent: Thursday, March 01, 2007 5:10 PM
    Subject: [puntonet] Culture Info


    Hola Fernando,
    esto es lo q sale

    Actual: - Invariant Language (Invariant Country)
    ShortDatePattern: MM/dd/yyyy
    Fecha: ERROR

    Actual: es-AR - Spanish (Argentina)
    ShortDatePattern: M/d/yyyy
    Fecha: ERROR

    Actual: es-UY - Spanish (Uruguay)
    ShortDatePattern: dd/MM/yyyy
    Fecha: 30/01/2007 12:00:00 a.m.

    Actual: en-US - English (United States)
    ShortDatePattern: M/d/yyyy
    Fecha: ERROR

    como veras, el es-AR lo pone como M/d/yyyy

    Saludos

    Juan
      -----Original Message-----
      From: [email protected] [mailto:[EMAIL PROTECTED] Behalf Of
Fernando Tubio
      Sent: Jueves, 01 de Marzo de 2007 03:32 p.m.
      To: [email protected]
      Subject: [puntonet] Culture Info


      Juan,

      ¿Que sucede cuando se ejecuta el siguiente código?

      <%@ Page Language="C#" %>

      <script runat="server">

          private string TestCulture ( string cultureName )
          {
              if ( cultureName != null )
                  Culture = cultureName;

              DateTime date;
              return (cultureName != null ? cultureName : "Actual") + ": "
                      + System.Globalization.CultureInfo.CurrentCulture +
" - " + Culture
                      + "<br>ShortDatePattern: "
                      +
System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePatt
ern
                      + "<br>Fecha: "
                      + (DateTime.TryParse( "30/01/2007", out date ) ?
date.ToString( ) : "ERROR")
                      + "<br><br>";
          }

          protected void Page_Load ( object sender, EventArgs e )
          {
              status.Text = TestCulture( null )
                          + TestCulture( "es-AR" )
                          + TestCulture( "es-UY" )
                          + TestCulture( "en-US" );
          }

      </script>

      <html xmlns="http://www.w3.org/1999/xhtml"; >
      <head runat="server">
          <title>Untitled Page</title>
      </head>
      <body>
          <form id="form1" runat="server">
              <asp:Label ID="status" runat="server" />
          </form>
      </body>
      </html>


      Saludos,

      Fernando Tubio

        ----- Original Message -----
        From: Juan Granillo
        To: [email protected]
        Sent: Thursday, March 01, 2007 12:13 PM
        Subject: [puntonet] Culture Info


        Hola lista,

        Tengo que validar que una fecha es valida en una pagina asp.net 2.0.
Agregue un comparevalidator, con operator=datatypecheck y type=date. El
problema es que no me toma como valida una fecha 30/01/2007, pero si es
valida 01/30/2007.
        Tengo configurado el web.config seteada con la cultura de argentina.
        <globalization culture="es-AR" uiCulture="es-AR"/>

        si lo cambio a

        <globalization culture="es-UY" iCulture="es-UY"> (uruguay)

        el validador de fecha funciona bien, es decir, toma como valido
30/01/2007, y no 01/30/2007.

        Alguna idea de que puede estar fallando? o es un bug ?

        Saludos a todos

        Juan

Responder a