Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di ciupaz
    Registrato dal
    Dec 2000
    residenza
    Milano
    Messaggi
    848

    [C#] Conversione Stringa -> DateTime

    Ciao a tutti,
    avendo una stringa nel formato YYYYMMDD, come faccio a convertirla nel formato DateTime?
    Stavo provando il seguente codice:

    string DataRef = "20060930";
    DateTime dDataRef;
    dDataRef = Convert.ToDateTime(DataRef);

    ma mi da' errore:

    String was not recognized as a valid DateTime.

    L'importante è che la variabile rimanga nel formato YYYYMMDD.
    Quello che serve è solo che cambi il tipo di dato.

    Qualcuno ha idea di come fare?
    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Devi separare le singole cifre che costituiscono la data nella loro rappresentazione sottoforma di stringa "estraendole" dal valore testuale che hai (usando il metodo Substring) e, una volta ottenuto giorno, mese e anno in formato testo, convertire tali valori in un intero e passarli al costruttore del tipo DateTime che accetta esclusivamente quei parametri per costruire un valore DateTime corretto.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di ciupaz
    Registrato dal
    Dec 2000
    residenza
    Milano
    Messaggi
    848
    Ok presumo di aver capito, grazie Alka.

  4. #4
    Utente di HTML.it L'avatar di ciupaz
    Registrato dal
    Dec 2000
    residenza
    Milano
    Messaggi
    848
    Ho provato a fare come dici tu, nel seguente modo:

    string DataRef = Session["DataRef"].ToString(); // Ho la stringa "20060930"

    int theYear = System.Convert.ToInt32(DataRef.Substring(0, 4));
    int theMonth = System.Convert.ToInt32(DataRef.Substring(4, 2));
    int theDay = System.Convert.ToInt32(DataRef.Substring(6, 2));
    DateTime dtRef = new DateTime(theYear, theMonth, theDay);

    il problema è che la variabile dtRef me la ritrovo nel formato 30/09/2006 0.00.00
    il che non mi va bene, dato che la vorrei come 20060930 (come l'input, ma solo che il formato dovrebbe essere di tipo DateTime)

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Originariamente inviato da ciupaz
    il problema è che la variabile dtRef me la ritrovo nel formato 30/09/2006 0.00.00
    La variabile è di tipo DateTime, che non ha un formato, ma rappresenta un valore; il formato viene specificato solo quando tale valore deve essere convertita in stringa.

    Originariamente inviato da ciupaz
    il che non mi va bene, dato che la vorrei come 20060930 (come l'input, ma solo che il formato dovrebbe essere di tipo DateTime)
    Devi usare il metodo ToString() del valore DateTime passando la corretta stringa di formato in cui specifichi esattamente come devono essere disposti i campi del valore data/ora nella rappresentazione testuale.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.