+ Rispondi al messaggio
Pagina 1 di 3 123 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Trasformare data formato inglese in formato italiano

  1. #1
    pierovb non  in linea Scolaretto
    Post
    356
    Like Inviati  
    0
    Like Ricevuti  
    0
    Buorgiorno,

    devo installare un programma su un computer che ha installato Windows 10 in lingua inglese
    con tutte le impostazioni, ovviamente, in inglese che non posso modificare.

    Il problema che mi si presenta e del quale non riesco a venirne a capo il seguente :

    la data impostata nel formato "m/d/yyyy" mentre a me serve nel formato "dd/mm/yyyy"

    Ho pensato di trasformare la data nel formato inglese in una stringa e quindi
    con un "pastrocchio" formattarla nella data in formato italiano

    ' Text1.text la data proposta in formato inglese ( "m/d/yyyy" )

    'Text2.Text = Split(Trim(Text1.Text), "/")(1) & Space(1) & Split(Text1.Text, "/")(0) & Space(1) _ 
    '                    & Split(Text1.Text, "/")(2)
     'Text2.Text = Format(Replace(Text2.Text, " ", "/"), "dd/mm/yyyy")
    
    nessun problema se il programma gira sul computer Win 10 ITA

    sul computer Win 10 ENG invece sorgono vari problemi

    ad esempio
    se digito 2/1/2020 che trasformata d il 1 febbraio 2020
    mi restituisce 02/01/2020 cio il 2 gennaio 2020

    ancora
    se digito 12/1/2020 la trasforma in 12/01/2020
    e non 01/12/2020

    Come posso fare ?
    Ultima modifica di TheTruster; 22-02-2021 19:03  Motivo: Tag CODE

  2. #2
    L'avatar di AntonioG
    AntonioG non  in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,485
    Blogs
    5
    Like Inviati  
    6
    Like Ricevuti  
    34
    @piero ... la prossima volta chiedi al moderatore che venga spostata la discussione dalla sezione sbagliata e inserisci comunque i tag code per il codice.

    Non possibile che, dopo tanto tempo che frequenti il forum, si debbano sempre ricordare le stesse cose ...
    ℹ️ Leggi di pi su AntonioG ...

  3. #3
    pierovb non  in linea Scolaretto
    Post
    356
    Like Inviati  
    0
    Like Ricevuti  
    0
    In effetti abituato con il vecchio forum non mi sono accorto di aver postato male. Chiedo scusa.
    Per quanto riguarda i tag code sono assolutamente sicuro di aver messo il codice tra i due tag.
    Non riesco a capire quella sequenza di numeri che io non ho messo.
    Anche perch prima di pubblicare ho letto e riletto il post un paio di volte. torno a ripetere mi sembra molto strano...

  4. #4
    L'avatar di AntonioG
    AntonioG non  in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,485
    Blogs
    5
    Like Inviati  
    6
    Like Ricevuti  
    34
    Quello scritto in Pausa Caff era corretto, in questo hai aggiunto quei numeri e non hai messo i tag CODE.

    Modifica il post ed elimina i numeri

    Per quanto riguarda il problema, dopo che inserisci la data nella textbox, cosa ci fai nel resto del programma?
    ℹ️ Leggi di pi su AntonioG ...

  5. #5
    pierovb non  in linea Scolaretto
    Post
    356
    Like Inviati  
    0
    Like Ricevuti  
    0
    Buorgiorno,

    devo installare un programma su un computer che ha installato Windows 10 in lingua inglese
    con tutte le impostazioni, ovviamente, in inglese che non posso modificare.

    Il problema che mi si presenta e del quale non riesco a venirne a capo il seguente :

    la data impostata nel formato "m/d/yyyy" mentre a me serve nel formato "dd/mm/yyyy"

    Ho pensato di trasformare la data nel formato inglese in una stringa e quindi
    con un "pastrocchio" formattarla nella data in formato italiano

    ' Text1.text  la data proposta in formato inglese ( "m/d/yyyy" )
    ' text2.Text la data con il formato che vorrei ottenere
    
    Text2.Text = Split(Trim(Text1.Text), "/")(1) & Space(1) & Split(Text1.Text, "/")(0) & Space(1) _ 
                        & Split(Text1.Text, "/")(2)
     Text2.Text = Format(Replace(Text2.Text, " ", "/"), "dd/mm/yyyy")
    
    nessun problema se il programma gira sul computer Win 10 ITA

    sul computer Win 10 ENG invece sorgono vari problemi

    ad esempio
    se digito 2/1/2020 che trasformata d il 1 febbraio 2020
    mi restituisce 02/01/2020 cio il 2 gennaio 2020

    ancora
    se digito 12/1/2020 la trasforma in 12/01/2020
    e non 01/12/2020

    Come posso fare ?

  6. #6
    pierovb non  in linea Scolaretto
    Post
    356
    Like Inviati  
    0
    Like Ricevuti  
    0
    Stupidamente ho fatto un copia incolla da pausa caffe'

    Per quanto riguarda il problema, dopo che inserisci la data nella textbox, cosa ci fai nel resto del programma?
    la data la devo inserire in un campo della tabella del database e vorrei che fosse formattata in "dd/mm/yyyy"
    nel senso di avere 2 cifre per il giorno, 2 per il mese e 4 per l'anno.

  7. #7
    pierovb non  in linea Scolaretto
    Post
    356
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ho trovato in rete il codice di una macro di excel che ho adattato al caso

    
    mese = Mid(Text1.Text, 1, InStr(1, Text1.Text, "/") - 1)
    giorno = Mid(Text1.Text, InStr(1, Text1.Text, "/") + 1, (InStrRev(Text1.Text, "/")) - (InStr(1, Text1.Text, "/") + 1))
    anno = Right(Text1.Text, 4)
    Text2.Text = Format(DateSerial(anno, mese, giorno), "dd/mm/yyyy")
    
    non avevo pensato alle funzioni InStr e InStrRev che ad onor del vero ho usato pochissimo.

    Sembra funzionare.

  8. #8
    Sgrubak ora  in linea Scribacchino
    Post
    595
    Like Inviati  
    10
    Like Ricevuti  
    11
    Per l'inserimento nel DB, non dovrebbe essere un tuo problema il formato. Devi usare i parametri nella query di INSERT.

    Segui l'esempio di Gibra.

    Per valorizzare la data, partendo dalla TextBox, o usi direttamente il valore (nel caso in cui l'utente scriva la data in formato anglosassone le impostazioni siano EN) oppure inverti il giorno ed il mese, e concateni. Ma ti basta lo Split...

    'Caso 1:
    Dim data As Date
    data = DateValue(Text1.Text)
    
    'Caso 2:
    Dim data As Date
    Dim dataSplit(3) As String
    
    dataSplit = Split(Text1.Text, "/")
    data = DateValue(dataSplit(1) & "/" dataSplit(0) & "/" dataSplit(2))
    
    Ovviamente tutti i controlli sull'input devi implementarli tu.

  9. #9
    pierovb non  in linea Scolaretto
    Post
    356
    Like Inviati  
    0
    Like Ricevuti  
    0
    @Sgrubak
    Non hai seguito bene la discussione, il problema l'ho affrontato con la funzione Split, per non sempre il formato data era quello voluto. I parametri cos come suggeriti da Gibra li uso in tutti i miei programmi.
    Ho risposto dal cellulare, spero di aver scritto bene.
    Comunque grazie.

  10. #10
    L'avatar di AntonioG
    AntonioG non  in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Post
    17,485
    Blogs
    5
    Like Inviati  
    6
    Like Ricevuti  
    34
    Piero mi sa che stai facendo confusione. Il suggerimento di sgrubak era corretto. Se devi inserire una data nel db usa i parametri.
    ℹ️ Leggi di pi su AntonioG ...

+ Rispondi al messaggio
Pagina 1 di 3 123 ultimoultimo

Potrebbero interessarti anche ...

  1. Risposte: 1
    Ultimo Post: 28-12-2014, 15:05
  2. CSV Data formato italiano
    Da stardevil nel forum MySQL
    Risposte: 2
    Ultimo Post: 25-09-2013, 23:08
  3. Articolo: [VBA] Convertire Data da Italiano ad Inglese
    Da @Alex nel forum Microsoft Access
    Risposte: 0
    Ultimo Post: 23-03-2012, 16:18
  4. Access data da formato data a formato testo
    Da TORNADO71 nel forum Microsoft Access
    Risposte: 3
    Ultimo Post: 08-09-2009, 22:02