2009-04-29 19 views
5

Tôi cần in ngày ở định dạng dd/mm/yyyy. nếu ngày 24/4/2009, nó sẽ in ngày tháng 04/24/2009. đó là zero đệm cũng cần thiết .. tôi đã sử dụng chức năng cập nhật để có được ngày hiện tại ... nhưng ngày là nhận được trong các định dạng của m/dd/yyyy ...Cách in ngày theo định dạng mm/dd/yyyy trong VB

+1

Bạn đang nói về phiên bản VB nào? –

+0

tôi đang làm việc trong VB 6.5 – sona

+1

'Date()' không trả về ở bất kỳ định dạng nào. Nó trả về một ngày mà sau đó sử dụng các thiết lập miền địa phương hiện tại của bạn khi nó được hiển thị. – Deanna

Trả lời

9

Thử nghiệm trong cửa sổ ngay lập tức và đang làm việc cho tôi (đầu ra dưới dạng nhận xét)

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 

Vì vậy, cho dù đó là chuỗi hoặc ngày giờ không quan trọng.

Chỉnh sửa: Đã xem nhận xét của bạn về Fredrik. Nó không quan trọng như thế nào khi bạn lưu nó vào bảng db (định dạng ngày cột sẽ là một tài sản của db và không phải là trách nhiệm của chương trình của bạn (hoặc vb). Chỉ cần định dạng giá trị và khi bạn lấy nó từ db.

+0

nếu bạn thử Msgbox (Định dạng (Ngày, "MM/dd/yyyy")) nó sẽ hoạt động .. nhưng tôi đã thử ... Dim dt as Date d = Format (Date, " MM/dd/yyyy ") cho điều này nó sẽ không hoạt động. – sona

+1

Loại dữ liệu ngày, nếu chưa định dạng, luôn hiển thị theo cài đặt vùng hệ thống. Bạn chỉ cần định dạng nó khi bạn muốn hiển thị nó. – jkchong

+1

Giống như những gì Fredrik đã nói, ngay cả VB lưu trữ ngày tháng dưới dạng số, không phải là chuỗi m/d/y theo nghĩa đen. Giải thích về lưu trữ ở đây: http://www.codeguru.com/vb/gen/vb_misc/algorithms/article.php/c7495 – jkchong

0

Hãy thử các mã tiếp theo:

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

Tính năng này không hoạt động đối với tôi ... – sona

+0

bạn có giải pháp nào khác không? Hãy giúp tôi điều này nếu bạn biết ... – sona

2

Lưu ý rằng ký tự "/" trong hàm định dạng ngày có ý nghĩa đặc biệt, là "dấu phân cách ngày". Điều này có nghĩa là tôi có thể được thay thế bằng dấu phân cách ngày tháng cho ngôn ngữ hiện tại mà chương trình được thực thi (tại Thụy Điển, nó sẽ được thay thế bằng "-" chẳng hạn). Để đảm bảo rằng bạn thực sự có được ký tự "/" trong đầu ra, tôi nghĩ rằng điều này sẽ làm việc (Tôi không có cài đặt VB để xác minh):

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

có bạn đang viết điều này sẽ chỉ hoạt động nếu loại ngày có định dạng chuỗi ... nhưng tôi đang sử dụng Định dạng ngày ... tôi đang có một bảng ... có một cột của kiểu dữ liệu ngày vì vậy ngay cả khi tôi chuyển đổi ngày thành chuỗi như bạn đã đề cập. nó sẽ tự động sẽ chuyển đổi thành ngày tháng tôi chèn giá trị vào tabel .. ví dụ: mờ dt dưới dạng chuỗi dt = Định dạng (Ngày, "mm/dd/yyyy") 'this sẽ chuyển thành 04/24/2009 nhưng tôi chèn nó vào bảng nó sẽ chuyển đổi thành 4/24/2009 bởi vì cột cụ thể đó thuộc loại ngày – sona

+0

Lý do nó chuyển đổi trở lại khi đặt trong bảng là bảng không lưu trữ ngày dưới dạng chuỗi, nhưng như một đối tượng ngày (mà sâu xuống là một giá trị số). Những gì bạn thấy chỉ là một biểu diễn văn bản của nó. Tôi đoán phần mềm DB của bạn sẽ tự động sử dụng ngôn ngữ mặc định của bạn để hiển thị giá trị cho bạn. Nếu bạn muốn nó được hiển thị theo một cách khác trong ứng dụng của bạn, bạn sẽ cần phải định dạng nó trước khi đưa nó vào điều khiển được sử dụng để hiển thị nó. –

+0

Cảm ơn bạn rất nhiều vì đã giúp đỡ – sona

0

Khi bạn nhập ngày ở bất kỳ định dạng nào, nó sẽ chuyển đổi giá trị mặc định để thực hiện thay đổi kiểu dữ liệu ngày/giờ thành văn bản, sau đó nó không thể ảnh hưởng đến công việc của bạn.

1

chỉ cho các hồ sơ, thoát dấu gạch chéo sẽ làm việc
Format(dt,"MM\/dd\/yyyy")

0

tôi cũng sử dụng VB6 và cần phải định dạng ngày trong báo cáo txt tôi

làm việc này cho tôi

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

nhưng chỉ khi tôi khai báo ngày là chuỗi

-1

s trDate = Định dạng (strDate, "yyyy-mm-dd") BillTime = Định dạng (BillTime, "hh: mm: ss")

Các vấn đề liên quan