查看: 847|回复: 12
|
如何convert string to datetime (我用了两个通用的方法但不行)
[复制链接]
|
|
我用了两个通用的方法来convert string to datetime, 但是不行
Dim closing_date as string = "4.7.06-12.00"
If datetime.parse(closing_date) > now() Then
xxx
End If
Convert.ToDateTime(closing_date) > now() then
xxx
End If |
|
|
|
|
|
|
|
发表于 7-7-2006 05:15 PM
|
显示全部楼层
其实很简单...
在 parse 之前用 coding 的方法把 "4.7.06-12.00" 换成 "4/7/06 12.00" 就可以了. |
|
|
|
|
|
|
|
发表于 7-7-2006 09:52 PM
|
显示全部楼层
你的timeformat不对... 没有遵守DateTimeFormatInfo class的format... 所以VB不了解...
把它改成4.7.06 12:00就没问题了... 也就是说把"-"去掉... 然后把"."改成":"... |
|
|
|
|
|
|
|
楼主 |
发表于 8-7-2006 09:21 AM
|
显示全部楼层
谢谢你们的建议, 我的问题已经完成一半了
新的问题是..
Dim closing_date as string = "25/7/06"
If datetime.parse(closing_date) > now() Then
xxx
End If
我发觉必须要是 "7/25/06"才能成功转换!
那么我该如何将 "25/7/06" 换去 "7/25/06"呢?
[ 本帖最后由 counterking 于 8-7-2006 09:52 AM 编辑 ] |
|
|
|
|
|
|
|
楼主 |
发表于 8-7-2006 10:14 AM
|
显示全部楼层
其实我是用sql statement LOAd DATA INFILE 将csv file 的资料load进 mysql DB
但是在csv file里,日期typed成 "25.7.06-2.30"
结果进到mysql DB的资料就变成 "2025-07-06 2:30:00"
请问这个问题可以解决吗?
注意! "25.7.06-2.30" this format must be persist in my CSV file...
唉...如果可以将format 换去"2006.7.25-2.30" 我就不用那么头痛了
[ 本帖最后由 counterking 于 8-7-2006 10:27 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 8-7-2006 12:14 PM
|
显示全部楼层
可以解决, 比较麻烦, 两种方法:
1. 在 mysql 里加多一个 string field, 把 date 输入进去那里, 然后 upload 完后, 再用 coding 把那 string update 自己 的 date.
2. 不能再用 infile, 读出文件的每一行, 自行用 code 把 date 转换. |
|
|
|
|
|
|
|
楼主 |
发表于 8-7-2006 06:00 PM
|
显示全部楼层
我比较偏向于第一个方法,1. 在 mysql 里加多一个 string field, 把 date 输入进去那里, 然后 upload 完后, 再用 coding 把那 string update 自己 的 date.
但问题是
Dim closing_date as string = "25/7/06"
If datetime.parse(closing_date) > now() Then
xxx
End If
我发觉必须要是 "7/25/06"才能成功转换!"25/7/06"
会出现error...
那么我该如何将 "25/7/06" 换去 "7/25/06"呢?除了用format这个function,还有其他的方法吗? |
|
|
|
|
|
|
|
发表于 8-7-2006 06:54 PM
|
显示全部楼层
如果你的 csv file 可以把 date 分成 dd mm yyyy 3 個
那就可以省下許多功夫了
不妨在接受 csv file 之前把它改成更容易使用的格式 |
|
|
|
|
|
|
|
发表于 8-7-2006 06:59 PM
|
显示全部楼层
原帖由 counterking 于 8-7-2006 06:00 PM 发表
我比较偏向于第一个方法,1. 在 mysql 里加多一个 string field, 把 date 输入进去那里, 然后 upload 完后, 再用 coding 把那 string update 自己 的 date.
但问题是
Dim closing_date as string = " ...
从你的资料库读出来的, 应该是 mmddyyyy, 所以问题不大. |
|
|
|
|
|
|
|
楼主 |
发表于 9-7-2006 11:33 AM
|
显示全部楼层
不。。。 可悲的读出来是 dd mm yyyy
Dim closing_date as string = "25/7/06"
我知道必须是 mmddyyyy才能使用datetime.parse , 但如果是 ddmmyyyyy该如何呢?
有何办法可以 datetime.parse("closing_date") ?? |
|
|
|
|
|
|
|
发表于 9-7-2006 01:45 PM
|
显示全部楼层
dim dtCulture as string = "en-GB"
dim cult as cultureinfo = new CultureInfo(dtCulture)
dim dtDate as datetime = "7/25/06"
dim strDate as string = dtDate.ToString("d", cult)
以上的code可以把7/25/06改成25/07/06...
CultureInfo是system.globalization的class... 用以转换不同的culture... 由于mm/dd/yy是美国的culture的datetime... 所以我们把cult设定成"en-GB"的culture... 也就是英国的datetime culture(dd/mm/yy)...
d是DateTimeFormatInfo Class 的 Format Specifier... 也就是ShortDatePattern... 其他的datetime格式可以参阅这里
希望可以帮到你...
ps:记得import system.globalization namespace
[ 本帖最后由 小妞儿 于 9-7-2006 01:46 PM 编辑 ] |
|
|
|
|
|
|
|
楼主 |
发表于 9-7-2006 04:44 PM
|
显示全部楼层
谢谢。。 但是我是要将 "25/7/06" 转换去 "7/25/06"
你说由于"en-GB"是英国的datetime culture(dd/mm/yy)...
那么我是不是用美国的culture的datetime (mm/dd/yy) 就可以了
dim dtCulture as string = "WHAT IS 美国的culture的datetime"
dim cult as cultureinfo = new CultureInfo(dtCulture)
dim dtDate as datetime = "25/7/06"
dim strDate as string = dtDate.ToString("d", cult)
请注意我是需要执行
If Datetime.Parse(strDate) > Date Then
xxx
End If |
|
|
|
|
|
|
|
发表于 10-7-2006 03:21 PM
|
显示全部楼层
原帖由 counterking 于 9-7-2006 04:44 PM 发表
谢谢。。 但是我是要将 "25/7/06" 转换去 "7/25/06"
你说由于"en-GB"是英国的datetime culture(dd/mm/yy)...
那么我是不是用美国的culture的datetime (mm/dd/yy) 就可以了
...
美国是"en-US" |
|
|
|
|
|
|
| |
本周最热论坛帖子
|