Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    117

    Equivalente del comando Format di VBA in Vb.net

    Ciao a tutti,
    mi sto approcciando al vb.net quindi vi chiedo di essere buoni data la mia ignoranza ed inesperienza su questo linguaggio.

    Per spiegarmi meglio ho pensato di usare una riga funzionante di codice VBA perché vorrei arrivare allo stesso risultato ma usando Vb.net

    In pratica estraggo da una stringa la parte iniziale (che è una data) e, poi la converto in formato "yyyy-mm-dd" ma sempre mantenendo il risultato in una stringa. Il codice VBA e:

    codice:
    mData = Format(Left(Trim(StringaOriginale, 10), "yyyy-mm-dd")
    In Vb.net sono riuscito ad estrarre la stringa della data (in formato italiano) con questo codice:

    codice:
    mData = StringaOriginale.substring(0,10).trim()
    Ma non riesco a convertirla nel formato che vorrei.

    Leggendo in giro mi sembra di aver capito che dovrei usare "Date.ParseExact" ma (probabilmente per colpa della mia ignoranza) non sono riuscito a venire a capo di niente

    In ogni caso non so se è la via giusta perché otterrei un oggetto data mentre a me serve una stringa.

    L'unica soluzione che ho trovato è quella di comporre "manualmente" la data nel formato voluto (ma non so se è una buona idea) con questo codice:
    codice:
    mData = StringaOriginale.substring(6, 4) & "-" & _
        StringaOriginale.substring(3, 2) & "-" & _
        StringaOriginale.substring(0, 2)
    Grazie in anticipo a chi mi darà qualche suggerimento

  2. #2
    L' equivalente del Format di VBA è il .ToString(formattazione voluta)

    https://msdn.microsoft.com/it-it/lib...vs.110%29.aspx

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    117
    Ciao eziogsv, grazie della risposta.

    Quindi, nel mio caso, dovrei usare:
    codice:
    mData = Date.ParseExact(StringaOriginale.substring(0,10), "dd/mm/yyyy", nothing).tostring("yyyy-mm-dd")
    Però mi sembra un po' arzigogolato
    Non c'è altro modo? un codice meno contorto?
    Grazie


    Edit:
    ripensandoci, guardando il codice vba originario, forse era più contorto quello
    Ultima modifica di genespos; 05-05-2015 a 11:35

  4. #4
    >Quindi, nel mio caso, dovrei usare........

    Dim MiaData as Date = CDate(mData)

    mData = Date.ToString(la formattazione che vuoi, al limite invertendo giorni con mesi e viceversa)
    Ultima modifica di eziogsv; 05-05-2015 a 11:57

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    117
    Ma io non ho una data (vedi primo post). Ho una stringa tipo: "25/12/2014 - Buon Natale a tutti" dalla quale devo estrarre la data e convertirla nel formto che usa mySql: "2014-12-25"

  6. #6
    mData = StringaIniziale.Substring(0,10).Trim

    mData= mData.substring(7,4) & "-" & mData.substring(3,2) & "-" & mdata.substring(0,2)

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    117
    Dim MiaData as Date = CDate(mData)
    Non funziona perché non accetta il formato data italiano

    mData= mData.substring(7,4) & "-" & mData.substring(3,2) & "-" & mdata.substring(0,2)
    Lo avevo già scritto nel primo post... chiedevo se ci fosse di meglio

  8. #8
    Vero. Sorry, sono le cose che succedono quando si va di fretta.

    Più breve della tua soluzione non ne vedo.

    Un codice più "universale", in quanto si adatta alle singole culture, è:

    codice:
                mData =StringaOriginale.substring(0,10).trim()
                Dim MyData As Date
                If Date.TryParse(mData, CultureInfo.CurrentCulture, DateTimeStyles.None, MyData) then
                    mData = MyData.ToString("yyyy-MM-dd")
                Else
                    Debug.WriteLine("Mancata conversione di " & mData)
                End If

    Devi importare System.Globalization
    Ultima modifica di eziogsv; 05-05-2015 a 17:34

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.