将字符串转换成时间格式

鏡椛氹鈅 2015-01-13 02:47:58
如何将类似与 20150113144244 这样的字符串转换成时间格式 2015-01-13 14:42:44
format,convert.datetime,tostring("yyyy-MM-dd HH:mm:ss")都试了,不是报错,就是达不到预期效果,有高手转换过吗?求解
...全文
1744 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiaoao_2460950972 2015-01-14
  • 打赏
  • 举报
回复
用ParseExact方法将字符串转化为日期格式 private void btn_Convert_Click(object sender, EventArgs e) { #region 针对Windows 7系统 string s = string.Format("{0}/{1}/{2}",//得到日期字符串 txt_Year.Text, txt_Month.Text, txt_Day.Text); DateTime P_dt = DateTime.ParseExact(//将字符串转换为日期格式 s, "yyyy/MM/dd", null); #endregion //#region 针对Windows XP或者2003系统 //string s = string.Format("{0}{1}{2}",//得到日期字符串 // txt_Year.Text, txt_Month.Text, txt_Day.Text); //DateTime P_dt = DateTime.ParseExact(//将字符串转换为日期格式 // s, "yyyyMMdd", null); //#endregion MessageBox.Show("输入的日期为: "//弹出消息对话框 + P_dt.ToLongDateString(), "提示!"); }
灬浪子灬 2015-01-13
  • 打赏
  • 举报
回复
引用 楼主 u012804018 的回复:
如何将类似与 20150113144244 这样的字符串转换成时间格式 2015-01-13 14:42:44 format,convert.datetime,tostring("yyyy-MM-dd HH:mm:ss")都试了,不是报错,就是达不到预期效果,有高手转换过吗?求解
DateTime dt = DateTime.ParseExact("20150113144244", "yyyyMMddHHmmss", null);
鏡椛氹鈅 2015-01-13
  • 打赏
  • 举报
回复
引用 10 楼 Z65443344 的回复:
[quote=引用 7 楼 u012804018 的回复:] [quote=引用 5 楼 Z65443344 的回复:] [quote=引用 3 楼 wuyq11 的回复:] DateTime.ParseExact(dateTimeStr, yyyy-"MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
实测,确实可以 代码

string s = "20150113144244";
DateTime dt = DateTime.ParseExact(s, "yyyyMMddHHmmss", null);
[/quote] 不对啊...[/quote] 注意我给的代码,复制过去用,不要自己瞎改[/quote] 问题解决了,谢谢,我把你的代码改成 string s = "20150113144244"; DateTime.ParseExact(s, "yyyyMMddHHmmss", null).ToString("yyyy-MM-dd HH:mm:ss")
code_your_life 2015-01-13
  • 打赏
  • 举报
回复
label2.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
鏡椛氹鈅 2015-01-13
  • 打赏
  • 举报
回复
引用 9 楼 starfd 的回复:
[quote=引用 8 楼 u012804018 的回复:] [quote=引用 2 楼 bobdog19861111 的回复:] 我刚试了一下,有一下方面: 1.如果月、日是个位数(如1号到9号,1月到9月),则转换后只显示1至9,而不是01至09; 2.如果小时也是个位,则转换后只显示1至9,而不是01至09; 3.分、秒能显示十位的0;
        
static void Main(string[] args)
        {
            string str = @"2015/01/03 04:02:01";
            DateTime dt = DateTime.Parse(str);
            //DateTime dt = DateTime.Now;
            Console.WriteLine("#######");
            Console.WriteLine(dt);
            Console.ReadKey();
        }
所以,上述输出是:2015/1/3 4:02:01 你在网上搜C# datetime,有个cnbolg把这个的用法讲的很详细,你自己看吧。我也不懂。 http://www.cnblogs.com/ymyglhb/archive/2009/04/22/1441293.html
我需要的是将这样的字符串 20150113144244 转换成时间格式 2015-01-13 14:42:44 而不是你给的那种字符串...[/quote] 哪吒给你的代码都已经是DateTime了,想要什么格式随便你了啊
string s = "20150113144244";
DateTime dt = DateTime.ParseExact(s, "yyyyMMddHHmmss", null);
return dt.ToString("yyyy-MM-dd HH:mm:ss");
[/quote] 我逗了,老想着不去NEW东西然后进行转换的... 结贴答案: string s = "20150113144244"; DateTime.ParseExact(s, "yyyyMMddHHmmss", null).ToString("yyyy-MM-dd HH:mm:ss")
於黾 2015-01-13
  • 打赏
  • 举报
回复
引用 7 楼 u012804018 的回复:
[quote=引用 5 楼 Z65443344 的回复:] [quote=引用 3 楼 wuyq11 的回复:] DateTime.ParseExact(dateTimeStr, yyyy-"MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
实测,确实可以 代码

string s = "20150113144244";
DateTime dt = DateTime.ParseExact(s, "yyyyMMddHHmmss", null);
[/quote] 不对啊...[/quote] 注意我给的代码,复制过去用,不要自己瞎改
  • 打赏
  • 举报
回复
引用 8 楼 u012804018 的回复:
[quote=引用 2 楼 bobdog19861111 的回复:] 我刚试了一下,有一下方面: 1.如果月、日是个位数(如1号到9号,1月到9月),则转换后只显示1至9,而不是01至09; 2.如果小时也是个位,则转换后只显示1至9,而不是01至09; 3.分、秒能显示十位的0;
        
static void Main(string[] args)
        {
            string str = @"2015/01/03 04:02:01";
            DateTime dt = DateTime.Parse(str);
            //DateTime dt = DateTime.Now;
            Console.WriteLine("#######");
            Console.WriteLine(dt);
            Console.ReadKey();
        }
所以,上述输出是:2015/1/3 4:02:01 你在网上搜C# datetime,有个cnbolg把这个的用法讲的很详细,你自己看吧。我也不懂。 http://www.cnblogs.com/ymyglhb/archive/2009/04/22/1441293.html
我需要的是将这样的字符串 20150113144244 转换成时间格式 2015-01-13 14:42:44 而不是你给的那种字符串...[/quote] 哪吒给你的代码都已经是DateTime了,想要什么格式随便你了啊
string s = "20150113144244";
DateTime dt = DateTime.ParseExact(s, "yyyyMMddHHmmss", null);
return dt.ToString("yyyy-MM-dd HH:mm:ss");
鏡椛氹鈅 2015-01-13
  • 打赏
  • 举报
回复
引用 2 楼 bobdog19861111 的回复:
我刚试了一下,有一下方面: 1.如果月、日是个位数(如1号到9号,1月到9月),则转换后只显示1至9,而不是01至09; 2.如果小时也是个位,则转换后只显示1至9,而不是01至09; 3.分、秒能显示十位的0;
        
static void Main(string[] args)
        {
            string str = @"2015/01/03 04:02:01";
            DateTime dt = DateTime.Parse(str);
            //DateTime dt = DateTime.Now;
            Console.WriteLine("#######");
            Console.WriteLine(dt);
            Console.ReadKey();
        }
所以,上述输出是:2015/1/3 4:02:01 你在网上搜C# datetime,有个cnbolg把这个的用法讲的很详细,你自己看吧。我也不懂。 http://www.cnblogs.com/ymyglhb/archive/2009/04/22/1441293.html
我需要的是将这样的字符串 20150113144244 转换成时间格式 2015-01-13 14:42:44 而不是你给的那种字符串...
鏡椛氹鈅 2015-01-13
  • 打赏
  • 举报
回复
引用 5 楼 Z65443344 的回复:
[quote=引用 3 楼 wuyq11 的回复:]
DateTime.ParseExact(dateTimeStr, yyyy-"MM-dd HH:mm:ss", CultureInfo.InvariantCulture);

实测,确实可以
代码

string s = "20150113144244";
DateTime dt = DateTime.ParseExact(s, "yyyyMMddHHmmss", null);
[/quote]
不对啊...
鏡椛氹鈅 2015-01-13
  • 打赏
  • 举报
回复
引用 1 楼 Z65443344 的回复:
如果字符串长度是固定的,可以先substring截取,中间用-和:重新拼接成标准时间字符串 如果长度不固定,没办法,转换不了
你的意思是当前微软没有提供
引用 3 楼 wuyq11 的回复:
DateTime.ParseExact(dateTimeStr, yyyy-"MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
提示无效的时间格式,不能用...
於黾 2015-01-13
  • 打赏
  • 举报
回复
引用 3 楼 wuyq11 的回复:
DateTime.ParseExact(dateTimeStr, yyyy-"MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
实测,确实可以 代码

string s = "20150113144244";
DateTime dt = DateTime.ParseExact(s, "yyyyMMddHHmmss", null);
wuyq11 2015-01-13
  • 打赏
  • 举报
回复
DateTime.ParseExact(dateTimeStr, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
wuyq11 2015-01-13
  • 打赏
  • 举报
回复
DateTime.ParseExact(dateTimeStr, yyyy-"MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
bobdog19861111 2015-01-13
  • 打赏
  • 举报
回复
我刚试了一下,有一下方面: 1.如果月、日是个位数(如1号到9号,1月到9月),则转换后只显示1至9,而不是01至09; 2.如果小时也是个位,则转换后只显示1至9,而不是01至09; 3.分、秒能显示十位的0;
        
static void Main(string[] args)
        {
            string str = @"2015/01/03 04:02:01";
            DateTime dt = DateTime.Parse(str);
            //DateTime dt = DateTime.Now;
            Console.WriteLine("#######");
            Console.WriteLine(dt);
            Console.ReadKey();
        }
所以,上述输出是:2015/1/3 4:02:01 你在网上搜C# datetime,有个cnbolg把这个的用法讲的很详细,你自己看吧。我也不懂。 http://www.cnblogs.com/ymyglhb/archive/2009/04/22/1441293.html
於黾 2015-01-13
  • 打赏
  • 举报
回复
如果字符串长度是固定的,可以先substring截取,中间用-和:重新拼接成标准时间字符串 如果长度不固定,没办法,转换不了

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧