您的位置:首页 > 编程语言 > VB

【VB.NET机房重构】时间格式

2015-06-20 11:03 190 查看


一直没太仔细的看这个时间获取问题,因为每次都成功的获取了一些东西并且填充在相应的数据库字段中,今天把这个字段伸展开,发现了这么一个哭笑不得的问题。
完了,不认真,所以所有有关获取日期时间的字段都是这个问题。开始解决吧。
观察得知,月份和分钟保持高度的一致,原来问题再这儿。查看代码,
worklogentity.LoginTime = Format(Now, "yyyy-mm-dd hh:mm:ss")

我试了试,将日期改为大写的MM,这就成功了;然后想着应该标出“PM”或者用24小时制的,于是又尝试将小时改成“HH”,结果又成功了。 worklogentity.LoginTime = Format(Now, "yyyy-MM-dd HH:mm:ss") 真真是歪打正着啊。
第一版机房的时候,日期和时间是分开的,所以没出现这个问题,既然遇到了就好好查查吧。
1、时间格式:
“HH”是24小时制的,“hh”是12小时制的,“MM”是月份,“mm”是分钟。
“H”是1个字符的,如1:50,“yyyy”指的是“2015”,“yy”指的是“15”,其他同理。
2、时间段的获取:
①单纯的年月日或者时分秒比较简单,直接获取就可以了
③年月日 时分秒:
Dim time As TimeSpan '定义类型为TimeSpan类型的变量,表示获取的时间差,格式为 时:分:秒
        Dim logintime As System.DateTime '定义类型为DateTime的时间变量,将实体中上机时间获取并转换成DateTime类型
        logintime = DateTime.Parse(linelogentity.LoginTime)
        '将两个时间做差,获取时间段time
        time = logintime.Subtract(DateTime.Now) 'DateTime.Now表示DateTime类型的当前时间,即下机时间
        txtSpendTime.Text = time.Duration.TotalMinutes.ToString() '将时间差转换为分钟形式,赋值给文本框
        txtSpendTime.Text = CInt(txtSpendTime.Text) '将文本框中的数据取整
        linelogentity.SpendTime = txtSpendTime.Text '将最终结果传给实体层
3、用DateTimePicker控件查询日期
一定要注意格式的一致性。我的数据库设置的是yyyy-MM-dd HH:mm:ss的,所以从DateTimePicker控件中获取然后传给实体层的也必须是这个格式的,具体格式转换代码如下:
'从Datetimepicker控件中获取的日期的格式设置为数据库中的格式“yyyy-MM-dd”
            DateTimePicker1.Format = DateTimePickerFormat.Custom
            DateTimePicker1.CustomFormat = "yyyy-MM-dd"
            DateTimePicker2.Format = DateTimePickerFormat.Custom
            DateTimePicker2.CustomFormat = "yyyy-MM-dd"
            '将DateTimePicker中的数据传给实体层
            rechargelogentity.Time = DateTimePicker1.Text
            rechargelogentity.EndTime = DateTimePicker2.Text
小结:
时间这块儿的问题主要就是一致,从U层取得数据的格式和存到数据库中的格式保持一致就可以了,当然一些关于时间的基本知识也是必须了解的。推荐以下博客:/article/1978072.html
http://blog.csdn.net/bigheadsheep/article/details/12013267
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: