关于日期转换
我想把31/12/2002这种格式转换成2002-12-31格式,以便存入SQLServer数据库中
另外,取出时,又需将2002-12-31转换成31/12/2002格式,用什么方法好呢?
存入数据库时是否可用Convert.ToDateTime()格式化呢。
问题点数:40、回复次数:15Top
1 楼netwalking(不懂就问)回复于 2002-10-15 00:23:40 得分 0
我酒是用Convert.ToDateTime(),没有问题!Top
2 楼saucer(思归)回复于 2002-10-15 00:24:44 得分 30
try
using System;
using System.Globalization;
DateTimeFormatInfo dtfi = new DateTimeFormatInfo();
dtfi.ShortDatePattern = "dd/MM/yyyy";
DateTime t = DateTime.Parse("31/12/2002",dtfi );
Console.WriteLine(t.ToString("yyyy-MM-dd"));
DateTime t2 = DateTime.Parse("2002-12-31");
Console.WriteLine(t2.ToString("dd/MM/yyyy"));
Top
3 楼nidttmwwt(beibi)回复于 2002-10-15 00:49:08 得分 0
当从数据库中取出时MM,dd是交换了位置,但"-"怎么没变成"/"呢?
就是说t2.ToString("dd/MM/yyyy")的"/"怎么没起作用呢?
Top
4 楼yarshray(saga jion(心飘情落))回复于 2002-10-15 00:59:35 得分 0
DateTimeFormatInfo.DateSeparator ="/"Top
5 楼nidttmwwt(beibi)回复于 2002-10-15 01:10:50 得分 0
"/"始终不出来,错在哪里啊!
string startdate = row["StartDate"].ToString();
string enddate = row["EndDate"].ToString();
DateTimeFormatInfo dtfi = new DateTimeFormatInfo();
dtfi.ShortDatePattern = "yyyy-MM-dd";
dtfi.DateSeparator="/";
DateTime t = DateTime.Parse(startdate,dtfi);
DateTime t2 = DateTime.Parse(enddate,dtfi);
this.TextBox7.Text = t.ToString("dd/MM/yyyy");
this.TextBox8.Text = t2.ToString("dd/MM/yyyy");Top
6 楼saucer(思归)回复于 2002-10-15 02:34:06 得分 0
using System;
using System.Globalization;
class TestDLL
{
public static void Main()
{
DateTimeFormatInfo dtfi = new DateTimeFormatInfo();
dtfi.ShortDatePattern = "dd/MM/yyyy";
DateTime t = DateTime.Parse("31/12/2002",dtfi );
Console.WriteLine(t.ToString("yyyy-MM-dd"));
DateTime t2 = DateTime.Parse("2002-12-31");
Console.WriteLine(t2.ToString("dd/MM/yyyy"));
}
}
output:
2002-12-31
31/12/2002Top
7 楼yarshray(saga jion(心飘情落))回复于 2002-10-15 02:55:04 得分 10
to:思归
我得到的结果依然是
output:
2002-12-31
31-12-2002
Top
8 楼hammerng00(Hammer Ng)回复于 2002-10-15 09:34:07 得分 0
我用思归的方法验了一下,是对的喔。
Top
9 楼nidttmwwt(beibi)回复于 2002-10-15 11:57:05 得分 0
我拷贝了一下思归的代码,运行控制台后
output:
2002-12-31
31-12-2002
应该不是代码问题了,我是中文版VisualStutio.net+中文版XP
会不会???Top
10 楼yarshray(saga jion(心飘情落))回复于 2002-10-15 12:21:38 得分 0
和你一样中文版VisualStutio.net+中文版2k serverTop
11 楼nidttmwwt(beibi)回复于 2002-10-15 12:31:44 得分 0
哪位英文版的帮个忙测一下
using System.Globalization;
DateTime t2 = DateTime.Parse("2002-12-31");
Console.WriteLine(t2.ToString("dd/MM/yyyy"));
输出是31-12-2002还是31/12/2002Top
12 楼nidttmwwt(beibi)回复于 2002-10-15 19:39:20 得分 0
我试了试,别人的英文版输出也是31-12-2002。
后来用sql的Convert()方法,也不错。
Top
13 楼qiushuiwuhen(秋水无恨)回复于 2002-10-15 19:51:42 得分 0
输出是31-12-2002,修改为:
Console.WriteLine(t2.ToString("dd/MM/yyyy").Replace("-","/"));
Top
14 楼qiushuiwuhen(秋水无恨)回复于 2002-10-15 19:52:14 得分 0
输出是31-12-2002,修改为:
Console.WriteLine(t2.ToString("dd/MM/yyyy").Replace("-","/"));
Top
15 楼saucer(思归)回复于 2002-10-15 20:03:10 得分 0
I am using English version of win2000Top
16 楼saucer(思归)回复于 2002-10-16 05:22:12 得分 0
if what you guys said is true, then somthing is really funny with the Chinese version of VS.NET, see this
DateTime t2 = DateTime.Parse("2002-12-31");
Console.WriteLine(t2.ToString("ddkickMMballyyyy"));
the output on English version of win2000:
31kick12ball2002Top




