Salut,
En ce qui concerne les dates, quelle que soit la source, il faut TOUJOURS spécifier le format lors de la convertion. Beaucoup, de paramètres entrent en compte lors de cette conversion: la config windows, la langue du navigateur, ...
Une fois que la date est typée en DateTime plus de soucis.
Ex
01/02/2009 en fr-FR vaut pour le 1er février 2009
01/02/2009 en en-US vaut pour le 2 janvier 2009
DateTime CreationDate = Convert.ToDateTime(((Label)GridView1.Rows[i].FindControl("Label1")).Text, new CultureInfo("fr-FR").);
Si tu es certain que la saisie se fait en fr-FR.
Comment connaitre la culture du navigateur? Personnellement, toutes mes pages web héritent d'une classe de base "BaseUI" qui elle-même hérite de "System.Web.UI.Page":
1 2 3 4 5 6 7 8
| public partial class Default : BaseUI
{
protected void Page_Load(object sender, EventArgs e)
{
}
} |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| public abstract class BaseUI : System.Web.UI.Page
{
public BaseUI()
{
// Permet de fixer la culture en fonction du navigateur
try
{
// tentative de lecture de la première langue par défaut
Page.Culture = System.Web.HttpContext.Current.Request.UserLanguages[0].ToString();
}
catch (Exception)
{
// en cas d'echec on fixe la culture au français
Page.Culture = new CultureInfo("fr-FR").ToString();
}
}
} |
Ainsi, à chaque initialisation de mes pages je tente de récupérer la culture du navigateur et fixe la culture de ma page en fonction. Ainsi, tous les contrôles sont affectés.
En ce qui concerne la saisie de date, c'est tellement risqué de demander à l'internaute de la saisir en la tapant que je mets des listes déroulantes ou encore mieux des contrôles calendar qui envoient directement un type DateTime.
A+
Partager