PDA

Visualizza la versione completa : paesi nel mondo con formato mese una cifra


Kahm
22-10-2018, 16:23
in azienda mia è scoppiato un CAOS apocalittico!
in pratica un idiota ha impostato il suo PC con il formato dd/M/yyyy e ovviamente ha dato errore tutto il mondo in quanto non riusciva a leggere le date che gli inviata il sistema(che sono a 8 cifre).
-Il mio capo vuole che funzioni anche con formati D/M/Y (esiste?)
-il tester dice ceh il capo ha ragione e pure lui poi alla prova non ci ha capito nulla
-il leccaCul* si è messo dalla parte del capo
-il raccomandato si è messo dalla parte del piu forte

le domande di seguito sono:
-esiste un paese al mondo che ha una cifra per il mese? natale lo festeggiano?
-se NON esiste perche windows da come parametro disponibile D/M/Y????? questi come fanno a far passare dopo una settimana?
-il mio capo ha ragione che il programma DEVE funzionare? oppure dipende dal loro sistemista che è un imbecill*?

è una settimana!! rientro oggi sperando di non vedere piu questo formato ma si sono ricaricati nel fine settimana!! :(

MItaly
22-10-2018, 16:37
Se una data che dev'essere machine-readable dipende dalle impostazioni del locale di Windows chi l'ha scritto è un imbecille.
Quelle impostazioni sono solo per le date da far vedere all'utente; per tutto il resto si usa un formato fisso, che stabilisci al momento di definire il protocollo/il formato del file, generato da funzioni che non dipendono dal locale corrente; se sei furbo usi un banale timestamp stile Unix (numero di secondi dall'epoch o quel che ti pare in UTC), se ti piace farti del male con il parsing puoi usare il più classico ISO 8601, possibilmente nella versione "facile" (YYYY-MM-DDTHH:mm:ss).

That being said, se parsi una data "human readable" fare in modo di splittare sugli slash invece di andare secco sugli indici dei caratteri non è sto gran disastro.

Vincent.Zeno
22-10-2018, 17:41
ora... finite le sacrosante spiegazioni tecniche di MItaly...

puoi:
1) farti venire il fegato grosso a furia di spiegare che sono un pochino idioti
2) farti spiegare come, secondo loro, si dovrebbe fare a realizzare questo
3) passarci il telefono dei "fenomeni": così gli telefoniamo, anche a tarda notte, e ci facciamo spiegare NOI come farebbero perché abbiamo avuto notizia che in quell'ufficio girano dei geni che hanno risolto i problemi della marcatura temporale che la NASA non ha ancora capito cosa siamo. la prima telefonata la facciamo gratuita (ci si diverte un mondo :D ), le altre stanno a 1euro al minuto (fidati: è un'ottimo investimento :mame: ).

saucer
22-10-2018, 17:46
la data puoi gestirla in formato esadecimale, in modo da trattarla nel formato DD/M/YYY

Fatto sta che è da cani...

SkyLinx
22-10-2018, 18:14
in azienda mia è scoppiato un CAOS apocalittico!
in pratica un idiota ha impostato il suo PC con il formato dd/M/yyyy e ovviamente ha dato errore tutto il mondo in quanto non riusciva a leggere le date che gli inviata il sistema(che sono a 8 cifre).
-Il mio capo vuole che funzioni anche con formati D/M/Y (esiste?)
-il tester dice ceh il capo ha ragione e pure lui poi alla prova non ci ha capito nulla
-il leccaCul* si è messo dalla parte del capo
-il raccomandato si è messo dalla parte del piu forte

le domande di seguito sono:
-esiste un paese al mondo che ha una cifra per il mese? natale lo festeggiano?
-se NON esiste perche windows da come parametro disponibile D/M/Y????? questi come fanno a far passare dopo una settimana?
-il mio capo ha ragione che il programma DEVE funzionare? oppure dipende dal loro sistemista che è un imbecill*?

è una settimana!! rientro oggi sperando di non vedere piu questo formato ma si sono ricaricati nel fine settimana!! :(

Parli di un'app desktop? :confused: Cmq mai sentito quel formato...


numero di secondi dall'epoch

Questo e' l'approccio che preferisco di solito.

MItaly
22-10-2018, 18:34
Questo e' l'approccio che preferisco di solito.
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.

Kahm
22-10-2018, 19:00
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.

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

MItaly
22-10-2018, 20:11
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?
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.

ho cercato di spiegare che se poi PURE SE FOSSE possibile gestire il mese quando salva poi fa nuovamente casini!
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.

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.


ma chi nel mondo usa M con una cifra?
perchè questo formato in windows come opzione?
se NON ESISTE mi toglierei un peso
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à.

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.


purtroppo la data deve essere leggibile dall'utente,
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.

Loading