2009-04-29 5 views
5

Ho bisogno di stampare la data nel formato mm/gg/aaaa. se la data è il 4/24/2009 dovrebbe stampare la data come 04/04/2009. che è necessaria anche zero padding .. funzione di data ho usato per ottenere la data corrente ... ma la data sta ottenendo nel formato m/gg/aaaa ...Come stampare la data nel formato mm/gg/aaaa in VB

+1

Di quale versione di VB stai parlando? –

+0

Sto lavorando in VB 6.5 – sona

+1

'Date()' non lo restituisce in alcun formato. Restituisce una data che quindi utilizza le impostazioni locali correnti quando viene visualizzata. – Deanna

risposta

9

Testato nella finestra immediata e sta funzionando per me (uscita come commento)

Format(Now, "MM/dd/yyyy") '04/29/2009 
Format(Date, "MM/dd/yyyy") '04/29/2009 
Format(CStr(Now), "MM/dd/yyyy") '04/29/2009 
Format(Date$, "MM/dd/yyyy") '04/29/2009 
Format(CDate(Date), "MM/dd/yyyy")'04/29/2009 

Quindi non importa se si tratta di stringa o datetime.

Modifica: visto il tuo commento a Fredrik. Non importa come appare quando lo salvi nella tabella db (il formato della data della colonna sarebbe una proprietà della responsabilità del db e non del tuo programma (o vb)). Basta formattare il valore come e quando lo si recupera dal db.

+0

se provate Msgbox (Formato (Data, "MM/gg/aaaa")) funzionerà .. ma ho provato come ... Dim dt as Date d = Format (Date, " MM/gg/aaaa ") per questo non funzionerà. – sona

+1

Il tipo di dati della data, se non formattato, viene sempre visualizzato secondo le impostazioni internazionali del sistema. Hai solo bisogno di formattarlo quando vuoi visualizzarlo. – jkchong

+1

Come quello che ha detto Fredrik, anche VB memorizza le date come un numero, non una stringa m/d/y letterale. Spiegazione della memorizzazione qui: http://www.codeguru.com/vb/gen/vb_misc/algorithms/article.php/c7495 – jkchong

0

provare il codice successivo:

Format(dt,"MM/dd/yyyy") 
+0

Questo non funziona per me ... – sona

+0

avete qualche altra soluzione? Per favore aiutatemi questo se lo sapete ... – sona

2

Si noti che il carattere "/" nelle funzioni di formattazione della data ha un significato speciale, come "separatore della data". Ciò significa che potrei essere sostituito con il separatore della data per la locale corrente in cui il programma è eseguito (qui in Svezia sarebbe sostituito con "-" per esempio). Al fine di garantire che effettivamente ottiene il carattere "/" nell'output, penso che questo dovrebbe funzionare (non ho un impianto di VB per verificare con):

Format(date, "MM'/'dd'/'yyyy") 
+0

sì, si scrive che funzionerà solo se il tipo di data è di formato stringa ... ma sto usando il formato Data ... sto avendo un tavolo..che ha una colonna del tipo di dati data quindi, anche se io converto la data in stringa come hai detto.it, verrà automaticamente convertito in data ven inserisco il valore in tabel .. per esempio: dim dt come stringa dt = Formato (Data, "mm/gg/aaaa") 'questo convertirà in 04/24/2009 ma se lo inserisco nella tabella verrà riconvertito in 4/24/2009 perché quella particolare colonna è di tipo data – sona

+0

Il motivo per cui converte indietro quando inserito nella tabella è che la tabella non memorizza la data come stringa, ma come oggetto data (che in fondo è un valore numerico). Quello che vedi è solo una rappresentazione testuale di esso. Immagino che il tuo software DB utilizzi automaticamente le impostazioni internazionali per mostrarti il ​​valore. Se si desidera visualizzarlo in un altro modo nell'applicazione, sarà necessario formattarlo prima di inserirlo nel controllo utilizzato per visualizzarlo. –

+0

Grazie mille per il vostro aiuto – sona

0

Quando si immette la data in qualsiasi formato, verrà convertito il valore predefinito, quindi fare una cosa che in accesso cambia il tipo di dati data/ora in testo, quindi non può influire sul lavoro in modo sicuro.

1

solo per la cronaca, sfuggendo la barra funzionerà
Format(dt,"MM\/dd\/yyyy")

0

Io uso anche VB6 e bisogno di formattare la data nella mia relazione txt

questo funziona per me

Format$(Now, "yyyy-mm-dd-00.00.00") 

ma solo se dichiaro la data come stringa

-1

s trDate = Formato (strDate, "aaaa-mm-gg") BillTime = Formato (BillTime, "hh: mm: ss")

Problemi correlati