快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

关于日期转变的心得

日期转变成字符串几乎是每个项目都要进行的工作,无论您用什么开发工具。在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 这种方法是唯一可用的方案。

很多朋友在学习的过程中,喜欢张口就问:这个怎么办?那个怎么办?其实开发工具所带的帮助,要啃。因为帮助所带的信息完全能满意您的基本需求。试想,假如帮助写不好,那么大家都学不会这种开发工具,那么开发商预备把开发工具卖给谁呢?尤其是微软的帮助,其中文化程度和具体程度更是到了令人发指的地步。






返回类别: 教程
上一教程: 使用CodeDom开发基于B/S的.NET+MSSQL代码生成器的随感
下一教程: 设计ASP.NET新闻治理系统

您可以阅读与"关于日期转变的心得"相关的教程:
· .net关于企业Excel报表的生成
· 【转载】关于垃圾回收机制
· 关于如何读取别人的网站使用NGWS NET classes
· 创建分布式应用程序学习心得
· 关于.net下服务安装
    微笑服务 优质保证 索取样品