關於ASP.NET中日期轉換的心得

來源:互聯網
上載者:User
asp.net|日期|心得|轉換   日期轉換成字串幾乎是每個項目都要進行的工作,無論您用什麼開發工具。在SQL Server中使用Convert或Cast可以方便的轉換日期為各種格式的字串,在PB中可以用string(date,"yyyy-mm-dd")一步到位。在asp.net中呢?我發現總是不如我意,如果使用yyyy-mm-dd這種方式轉換:
  BeginDate.SelectedDate.ToString("yyyy-mm-dd",DateTimeFormatInfo.InvariantInfo)
  
  那麼得到到是:2004-00-23
  
  為什麼是 00 呢?我百思不得其解。為此,我仔細查看了協助。下面的代碼來自asp.net的線上說明。
  
  下面的樣本說明用不變數 DateTimeFormatInfo 設定 DateTime 值的格式的不同方法。
  [Visual Basic]
  Option Explicit
  Option Strict
  
  Imports System
  Imports System.Globalization
  
  Public Class MainClass
  
  Public Shared Sub Main()
  Dim dt As DateTime = DateTime.Now
  Dim myformat() As String = {"d", "D", _
  "f", "F", _
  "g", "G", _
  "m", _
  "r", _
  "s", _
  "t", "T", _
  "u", "U", _
  "y", _
  "dddd, MMMM dd yyyy", _
  "ddd, MMM d ""'""yy", _
  "dddd, MMMM dd", _
  "M/yy", _
  "dd-MM-yy"}
  Dim mydate As String
  Dim i As Integer
  For i = 0 To myformat.Length - 1
  mydate = dt.ToString(myformat(i), DateTimeFormatInfo.InvariantInfo)
  Console.WriteLine(String.Concat(myformat(i), " :", mydate))
  Next i
  
  ' Output.
  '
  ' d :08/17/2000
  ' D :Thursday, August 17, 2000
  ' f :Thursday, August 17, 2000 16:32
  ' F :Thursday, August 17, 2000 16:32:32
  ' g :08/17/2000 16:32
  ' G :08/17/2000 16:32:32
  ' m :August 17
  ' r :Thu, 17 Aug 2000 23:32:32 GMT
  ' s :2000-08-17T16:32:32
  ' t :16:32
  ' T :16:32:32
  ' u :2000-08-17 23:32:32Z
  ' U :Thursday, August 17, 2000 23:32:32
  ' y :August, 2000
  ' dddd, MMMM dd yyyy :Thursday, August 17 2000
  ' ddd, MMM d "'"yy :Thu, Aug 17 '00
  ' dddd, MMMM dd :Thursday, August 17
  ' M/yy :8/00
  ' dd-MM-yy :17-08-00
  End Sub 'Main
  End Class 'MainClass
  
  沒錯啊,人家寫的也是 yyyy-mm-dd 格式,可是人家可以正確返回結果,我的就不可以。慢點,我再觀察一下。難道……難道是大小寫緣故?沒錯,asp.net剛發布的時候,就宣布過大小寫區分要逐步被提到重要位置上來,徹底改變asp時代大小寫不分的混亂狀態。也就是說,這裡的 mm 要寫成 MM 才可以。我抱著試試看的心理修改了,一遍通過,可以成功的返回 2004-08-23 了。求知不能就此結束,我馬上又全部改成大寫:YYYY-MM-DD,結果發現返回 YYYY-08-DD ,也就是說,yyyy-MM-dd 這種方式是唯一可用的方案。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.