关于ASP.NET中日期转换的心得
点击次数:26 次 发布日期:2008-11-27 02:17:45 作者:源代码网
|
源代码网推荐 日期转换成字符串几乎是每个项目都要进行的工作,无论您用什么开发工具。在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 这种方式是唯一可用的方案。 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 源代码网供稿. |
