Ciao a tutti
nel mio programma, ovunque, ho inserito il parsing delle ore a un mio formato (non ho quindi recuperato il separatore dall'environment) che cambia in base alla lingua. Sia in italiano che in inglese uso i due punti.

Tutto funziona correttamente ma sul server di produzione, all'apertura di un record, il separatore è il punto (e il validatore mi blocca tutto). Il server è in inglese con separatore punto, il mio pc in italiano con separatore due punti (a livello di sistema opereativo).

Da cosa può dipendere?
Grazie,

Ormai programmano tutti... ma la professionalità appartiene a pochi
13 messaggi dal 17 dicembre 2005
Se vuoi scrivere l'ora in un formato indipendente dalle impostazioni del PC potresti usare :
DateTime.Now.ToString("s", System.Globalization.DateTimeFormatInfo.InvariantInfo);

oppure
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss", System.Globalization.DateTimeFormatInfo.InvariantInfo);


Nella prima forse si può anche evitare di specificare InvariantInfo, ma non ne sono sicuro.

Se invece vuoi fare il parsing di una stringa che contiene una data-ora, dovresti sapere a priori il formato della data e allora usare il Datetime.TryParse o Datetime.TryParseExect... ma io personalmente farei prima una conversione preventiva... non so, qualcosa che converta automaticamente il singolo punto in 2 punti... in questo modo saresti indipendente da chi scrive la stringa.
ti ringrazio della risposta.
Perché sul server visualizzo il punto e da me i due punti? Dipende dal sistema operativo?
Io uso:
txtData.Text = DateTime.Now.ToString("dd/MM/yyyy HH:mm");

O forse il parametro che mi hai indicato risolve tutto?
Modificato da manuel0081 il 03 settembre 2015 15.18 -

Ormai programmano tutti... ma la professionalità appartiene a pochi
13 messaggi dal 17 dicembre 2005
Il parametro InvariantInfo consente di formattare in modo indipendente dalle impostazioni del PC.

C'è da dire che le impostazioni del PC possono essere di vario tipo: sia la lingua, ma potrebbe avere anche un formato personalizzato per le date... insomma è un po' complicato saperlo da programma, è molto più semplice usare InvariantInfo.

Però se la formattazione e il parsing si risolvono tutti all'interno di una pagina o una form, potresti valutare se usare una accoppiata ToString / TryParse dipendenti dalle impostazioni del PC... vedi tu...
Modificato da micvic il 03 settembre 2015 15.26 -
3.939 messaggi dal 28 gennaio 2003
Per cortesia, puoi controllare come funziona così?

txtData.Text = DateTime.Now.ToString("dd\/MM\/yyyy HH\:mm")


è un consiglio letto tantissimo tempo fa ma non ho mai verificato.

Ciao.
Funziona sicuramente nel primo modo. Però anche la tua idea è più che valida visto fai l'escape del separatore e quindi forzi i due punti.

Ormai programmano tutti... ma la professionalità appartiene a pochi
3.939 messaggi dal 28 gennaio 2003
Se ho capito bene, non funziona! Se funzionasse darebbe lo stesso risultato nei due server.

Ciao.
Perché non funziona?

Ormai programmano tutti... ma la professionalità appartiene a pochi

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.