Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    C# Convertire un string in DateTime

    Salve Ragazzi

    sto impazzendo per un conversione di una stringa in DateTime io utilizzo la funzione qui sooto riportata

    DateTime dtime = DateTime.Parse(DataInserimento,"dd/MM/yyyy",System.Globalization.DateTimeStyles.None);

    il problema e' che mi restituisce la data in formato Mese/Giorno/ANNO e non riesco a trasformarla in GG/MM/ANNO qualcuno mi può aiutare

    ciao Grazie

  2. #2
    Penso che il problema sia nella lettura della variabile DateTime e non nella dichiarazione della stessa.

    Prova a leggere il valore di dtime in questo modo:

    dtime.ToString("dd-MM-yyyy");

    Così facendo "forzi" la formattazione della data fregandosene delle impostazioni internazionali correnti (sono queste a darti "fastidio".. sono settate sull'inglese sicuramente.. probabilmente sul server).


  3. #3
    hai ragione non ti ho detto cosa devo fare con questo valore, io devo usare la data in formato DateTime per una query su un data base e non posso convertirla in string devo tenerla in datetime e cambiare solo il formato perche nel db ho il formato dd/mm/yyyy.

    Ciao

  4. #4
    Originariamente inviato da Davicol
    hai ragione non ti ho detto cosa devo fare con questo valore, io devo usare la data in formato DateTime per una query su un data base e non posso convertirla in string devo tenerla in datetime e cambiare solo il formato perche nel db ho il formato dd/mm/yyyy.

    Ciao
    Ok ma.. la classe DateTime è specifica per le date, non è che all'interno memorizzi una data in formato inglese/italiano o quel che è. E' solo un problema di visualizzazione, quindi: se utilizzi dei parametri per la tua query (es. su MSSQL aggiungi un SqlParameter all'SqlCommand) allora non devi fare nulla gli passi direttamente la variabile dtime:

    ...
    SqlParameter p = cm.Parameters.Add("@Data", SqlDbType.DateTime);
    p.Value = dtime;
    ...

    Altrimenti se crei la query sottoforma di stringa, allora si, qui devi fare una cosa del genere:

    string sql = "UPDATE tabella SET Data='" + dtime.ToString("dd-MM-yyy") + "' WHERE ....";

    Il secondo passaggio però è sconsigliato.. il Framework ci mette a disposizione delle classi apposite per parametrizzare le nostre informazioni..


  5. #5
    Basta che modifichi il parametro di localizzazione e lo imposti ad "it-IT"

  6. #6
    Ho necessita di usare il dateTime cosi com'e perche la query che ho bisogno di fare e' in HQL con Nhibernate, per quanto riguarda il cambio di localizzazione ho scritto una cosa del genere ma mi restituisce un errore mi dice stringa non valida, la stringa che passo e' questa "15/03/2006" se invece passo la stringa "03/15/2006"
    tutto OK

    codice:
    DateTimeFormatInfo dtformat = new DateTimeFormatInfo(); dtformat.FullDateTimePattern = "dd/MM/yyyy";
    CultureInfo it = new CultureInfo("it-IT");
    it.DateTimeFormat = dtformat;
    IFormatProvider frm = it;
    
    DateTime dtime = DateTime.Parse(DataInserimento,frm);
    qTot.SetDateTime("dataInserimento",dtime);
    q.SetDateTime("dataInserimento",dtime);
    non capisco.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.