2017-07-31 21 views
0

這太讓我困惑了,我需要我的日期格式爲yyyy/mm/dd它是這種情況,當我註冊新用戶它會顯示錯誤,只接受該格式,但是一旦我保存他們的信息,日期顯示爲dd/mm/yyyy文本和網格視圖。日期格式是正確的yyyy/dd/mm但它顯示不同dd/mm/yyyy

任何想法是什麼問題?

檢查我custome驗證器(它完全工作;問題是奇數)

Dim testing As Date 
    If Date.TryParseExact(txtentrydate.Text.ToString(), "yyyy/mm/dd", 
        System.Globalization.CultureInfo.CurrentCulture, 
        Globalization.DateTimeStyles.None, testing) Then 
     args.IsValid = True 
    Else 
     args.IsValid = False 
    End If 
End Sub 
+0

我認爲月份應該是'MM',''yyyy/MM/dd'' – Fabio

+1

由於日期可能保存了一個Date,所以一旦它獲得了值,單元格就會將其格式化,使用輸入字符串。在單元的'DefaultCellStyle'屬性中,調整'格式'屬性 – litelite

+1

日期沒有格式 - 它們只是一個數字 - 所以你不能「設置」格式。格式就是我們向用戶顯示它們的方式。您的代碼正在測試字符串的格式而不是日期。 – Plutonix

回答

2

Date類型的變量不具有格式。日期就是這樣 - 一個時間點。

只有當Date變量是轉換爲字符串時,才分配格式。所以,如果你說

... the date is shown as dd/mm/yyyy both on text and grid view.

那麼你的代碼將日期轉換爲其文本表示是錯誤的。你沒有顯示該代碼,因此我們只能猜測。我的猜測是你依靠隱式轉換,它將使用你當前的區域設置。

解決方案很簡單:Explicity在將它們顯示在用戶界面之前先轉換您的日期。您可以通過執行ToString("yyyy\/MM\/dd")將它們分配給您的UI控件時執行此操作,或通過使用支持數據綁定的控件正確設置某種「格式屬性」來執行此操作。

PS:mm is for "minute".您想在您的格式字符串中使用MM

+0

無需在VB中轉義它們 – Plutonix

+0

我檢查了我的數據庫,它存儲在yyyy/MM/dd格式!我仍然不明白我需要做什麼上面的Tostring轉換。這裏是我的loadTextFields代碼:txtentrydate.Text = e.patient_entry_date – Sam

+0

日期沒有格式 - 這聽起來像你正在存儲字符串,而不是日期。 @Sam – Plutonix