Muszę wydrukować datę w formacie mm/dd/rrrr. , jeśli data jest 4/24/2009, powinna wydrukować datę jako 04/24/2009. że potrzebna jest również wypełnianie zerami .. użyłem funkcji daty, aby uzyskać aktualną datę ... ale data jest uzyskanie w formacie m/dd/yyyy ...Jak wydrukować datę w formacie mm/dd/rrrr w VB
Odpowiedz
testowane w najbliższym oknie i działa dla mnie (dane wyjściowe jako komentarz)
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
Tak, czy jest to ciąg znaków czy datetime nie powinno mieć znaczenia.
Edytuj: Widziałeś swój komentarz do Fredrika. Nie ma znaczenia, jak to wygląda, kiedy zapisujesz go w tabeli db (format daty kolumny byłby własnością db, a nie odpowiedzialnością twojego programu (lub vb)). Po prostu sformatuj wartość jako i kiedy pobierzesz ją z bazy danych.
jeśli spróbujesz Msgbox (Format (Data, "MM/dd/rrrr")) to zadziała .. ale próbowałem jak ... Dim dt jak Data d = Format (Data, " MM/dd/rrrr ") w tym przypadku nie będzie działać. – sona
Typ danych daty, jeśli niesformatowany, zawsze wyświetla się zgodnie z regionalnymi ustawieniami systemu. Wystarczy sformatować go, gdy chcesz go wyświetlić. – jkchong
Podobnie jak powiedział Fredrik, nawet VB przechowuje daty jako liczbę, a nie dosłowny ciąg m/d/y. Wyjaśnienie miejsca przechowywania tutaj: http://www.codeguru.com/vb/gen/vb_misc/algorithms/article.php/c7495 – jkchong
Należy zauważyć, że znak "/" w funkcjach formatowania daty ma specjalne znaczenie, jak "separator dat". Oznacza to, że mogę zostać zastąpiony separatorem daty dla bieżącego locale, w którym program jest wykonywany (tutaj w Szwecji zostanie na przykład zastąpiony przez "-"). W celu zapewnienia, że rzeczywiście uzyskać znak „/” na wyjściu, myślę, że to będzie działać (nie mam instalację z VB do sprawdzenia):
Format(date, "MM'/'dd'/'yyyy")
tak piszesz to będzie działać tylko wtedy, gdy typem daty jest ciąg formatu ... ale używam formatu daty ... Mam jedną tabelę ... która ma jedna kolumna danych typu data , więc nawet jeśli skonwertuję datę na napis, jak wspomniano. to automatycznie zostanie przekonwertowane na datę, w której wstawię wartość do tabeli. na przykład: dim dt jako ciąg dt = Format (data, "mm/dd/rrrr") 'to zostanie przekonwertowane na 04/24/2009 , ale jeśli wstawię to do tabeli zmieni się z powrotem na 4/24/2009, ponieważ ta konkretna kolumna ma datę typu – sona
Powodem, dla którego konwertuje się z powrotem po umieszczeniu w tabeli, jest to, że tabela nie zapisuje daty jako łańcucha, ale jako obiekt daty (który w głąb jest wartością numeryczną). To, co widzisz, jest tylko tekstową reprezentacją tego. Domyślam się, że twoje oprogramowanie DB automatycznie użyje twoich ustawień regionalnych, aby pokazać ci wartość. Jeśli chcesz, aby była wyświetlana w inny sposób w aplikacji, musisz sformatować ją przed umieszczeniem w formancie używanym do jej wyświetlania. –
Bardzo dziękuję za pomoc – sona
Po wprowadzeniu daty w dowolnym formacie przelicza ona wartość domyślną, a więc jedną rzecz, która przy dostępie zmienia typ danych na datę/godzinę na tekst, nie ma wpływu na pracę.
tylko dla przypomnienia, ucieczki ukośnik będzie działać
Format(dt,"MM\/dd\/yyyy")
Używam również VB6 i trzeba format daty w raporcie txt
to działa na mnie
Format$(Now, "yyyy-mm-dd-00.00.00")
, ale tylko jeśli zadeklaruję datę jako ciąg
s trDate = Format (strDate, "yyyy-mm-dd") BillTime = Format (BillTime, "hh: mm: ss")
O której wersji VB mówisz? –
pracuję w VB 6.5 – sona
'Date()' nie zwraca go w żadnym formacie. Zwraca datę, która następnie używa twoich aktualnych ustawień regionalnych, gdy jest wyświetlana. – Deanna