Idem... perché la gente sta a farsi mille paturnie sui formati di data per comunicazione tra software non l'ho mai capito... decidi un'epoch e poi passa tutto come numero di secondi (eventualmente floating point, oppure {micro|nano|pico}secondi a seconda di gusti e precisione richiesta) in UTC, più eventualmente la time zone in cui è stato originato (come offset da UTC in secondi, no nomi del cazzo che cambiano ogni dieci minuti perché il re del Besughistan si è svegliato che vuole una timezone tutta sua) se la cosa ha qualche rilevanza ai fini di interfaccia utente; fine di ogni problema di parsing e stupidaggini del genere. Quando visualizzi in GUI - e solo lì - usi il locale utente, delegando a funzioni di libreria sempre per il sopracitato problema del Besughistan.
Ultima modifica di MItaly; 22-10-2018 a 18:39
Amaro C++, il gusto pieno dell'undefined behavior.
il capo vuole che a qualsiasi formato della data che usi la nazione deve essere gestibile da qualsiasi altra nazione
esempio: se un utonto in una nazione inserisce 11/12/2018 e quello con il mese ad una cifra legge...che fa? ho cercato di spiegare che se poi PURE SE FOSSE possibile gestire il mese quando salva poi fa nuovamente casini!
ma chi nel mondo usa M con una cifra?
perchè questo formato in windows come opzione?
se NON ESISTE mi toglierei un peso
purtroppo la data deve essere leggibile dall'utente, per ora sono riuscito a farla cambiare nel pc che questo sistemista aveva impostato, ma ora la patata bollente per correggere il problema lo hanno passato a me, come se il sistemista facesse il suo lavoro e quello che lo fa male sarei io
NN vi diro mai chi sono in realta,
tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me
Il parsing delle date lo fa il frontend quando i dati entrano nell'applicazione; vengono parsati con il locale corrente, e da quel momento in poi sono dentro al programma come numero di secondi dalla epoch. L'utente dell'altra nazione non vedrà mai il formato del cazzo usato dagli altri utenti, perché questo cessa di esistere tre microsecondi dopo che è stato premuto il tasto salva.
Il formato mese "ad una sola cifra" è l'ultimo dei problemi - semplicemente non mette lo zero di padding sui mesi minori di 10, puoi leggere entrambi i formati senza problemi.ho cercato di spiegare che se poi PURE SE FOSSE possibile gestire il mese quando salva poi fa nuovamente casini!
Il tuo problema vero sono formati che non puoi distinguere l'uno dall'altro - ad esempio, se leggi 08/09/2013 potrebbe essere l'otto settembre 2013 secondo gran parte dell'Europa, o il nove agosto 2013 secondo praticamente tutti i paesi anglosassoni. Non puoi sapere quale dei due è corretto se non consultando le impostazioni del locale dell'utente che ha inserito il dato, cosa che, se ti salvi solo il dato "as is" come stringa, gli altri client non possono sapere. Per questo motivo, la prima cosa da fare quando si opera con date inserite dall'utente è lato GUI trasformarle immediatamente in un formato sensato (possibilmente numerico, in modo da non dover rifare il parsing di continuo) e non ambiguo; tutto il resto del programma non deve sapere nemmeno per sbaglio delle cretinate dei formati di data.
Esempio: in Excel mica che le date sono memorizzate come stringhe; appena inserisci una data (e Excel capisce che si tratta di una data secondo il locale corrente) questa viene convertita ad un formato interno (date OLE se ben ricordo, tipo microsecondi dal 31/12/1899 o giù di lì) e visualizzata sempre secondo il formato locale. Se il tuo foglio Excel viene aperto da un anglosassone questo vedrà le date nel suo formato preferito.
Può essere impostato da GUI, quindi è un formato che può capitare. Ma di nuovo, è un non-problema, sia perché non devi essere tu a parsare "alla cieca" i formati di date, sia perché anche fosse parsare entrambi i formati è una banalità.ma chi nel mondo usa M con una cifra?
perchè questo formato in windows come opzione?
se NON ESISTE mi toglierei un peso
Edit: e comunque secondo https://en.wikipedia.org/wiki/Date_format_by_country esiste ed è usato d/m/yyyy in diversi paesi (e in ogni caso, su date inserite a mano esiste tranquillamente in tutti i paesi dd/mm/yyyy). Sempre in quella pagina ti puoi rendere conto che cercare di gestire "alla cieca" tutti i possibili formati di date è semplicemente impossibile.
Nella GUI la data gliela fornisci nel formato che preferisci. Nella trasmissione non sono fatti suoi, o se proprio, usi un formato standard non ambiguo tipo YYYY-MM-DD, che non si presta a dubbi.purtroppo la data deve essere leggibile dall'utente,
Ultima modifica di MItaly; 22-10-2018 a 20:43
Amaro C++, il gusto pieno dell'undefined behavior.