C#,Asp.NET 导入Excel,时间格式一串数字转换.
2015-05-08 15:12
766 查看
在Excel中.日期或者时间格式为:42093.6506944444 或者 0.650694444444444
大于0 表示有日期(2015-03-30),小于零则是时间(15:37)
在C# 导入读取这列时,转换会发生错误;
现在将这格式转换为正常的日期格式:如下:
大于0 表示有日期(2015-03-30),小于零则是时间(15:37)
在C# 导入读取这列时,转换会发生错误;
现在将这格式转换为正常的日期格式:如下:
/// <summary> /// 数字转换时间格式 /// </summary> /// <param name="timeStr">数字,如:42095.7069444444/0.650694444444444</param> /// <returns>日期/时间格式</returns> private string ToDateTimeValue(string strNumber) { if (!string.IsNullOrWhiteSpace(strNumber)) { Decimal tempValue; //先检查 是不是数字; if (Decimal.TryParse(strNumber, out tempValue)) { //天数,取整 int day = Convert.ToInt32(Math.Truncate(tempValue)); //这里也不知道为什么. 如果是小于32,则减1,否则减2 //日期从1900-01-01开始累加 // day = day < 32 ? day - 1 : day - 2; DateTime dt = new DateTime(1900, 1, 1).AddDays(day < 32 ? (day - 1) : (day - 2)); //小时:减掉天数,这个数字转换小时:(* 24) Decimal hourTemp = (tempValue - day) * 24;//获取小时数 //取整.小时数 int hour = Convert.ToInt32(Math.Truncate(hourTemp)); //分钟:减掉小时,( * 60) //这里舍入,否则取值会有1分钟误差. Decimal minuteTemp = Math.Round((hourTemp - hour) * 60, 2);//获取分钟数 int minute = Convert.ToInt32(Math.Truncate(minuteTemp)); //秒:减掉分钟,( * 60) //这里舍入,否则取值会有1秒误差. Decimal secondTemp = Math.Round((minuteTemp - minute) * 60, 2);//获取秒数 int second = Convert.ToInt32(Math.Truncate(secondTemp)); //时间格式:00:00:00 string resultTimes = string.Format("{0}:{1}:{2}", (hour < 10 ? ("0" + hour) : hour.ToString()), (minute < 10 ? ("0" + minute) : minute.ToString()), (second < 10 ? ("0" + second) : second.ToString())); if (day > 0) return string.Format("{0} {1}", dt.ToString("yyyy-MM-dd"), resultTimes); else return resultTimes; } } return string.Empty; }
相关文章推荐
- C#,Asp.NET 导入Excel,时间格式一串数字转换.
- ASP.NET:C#中时间格式的转换
- ASP.NET C# 日期 时间 年 月 日 时 分 秒 格式及转换(转自happymagic的专栏)
- ASP.NET:C#中时间格式的转换
- ASP.NET C# 日期 时间 年 月 日 时 分 秒 格式及转换
- ASP.NET:C#中时间格式的转换
- ASP.NET:C#中时间格式的转换
- ASP.NET C# 日期时间年月日时分秒格式及转换
- ASP.NET C# 日期 时间 年 月 日 时 分 秒 格式及转换
- asp.net 从excel 导入时 提示:不是预期的格式错误 解决方法
- asp.net/c#代码实现excel to mssql数据导入
- asp.net(c#)数据类型格式转换大全
- ASP.NET C#开发Excel导入的功能流程
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- 将Excel内容导入数据库(ASP.NET/C#)
- asp.net 解决使用OLEDB导入excel数据时同时包含文本和数字的列无法正常读取情况
- [导入]ASP.NET AJAX客户端编程之旅(三)——让JavaScript和C#无障碍沟通:数据类型自动转换&序列化
- C# 或Asp.Net 将excel表格导入数据库 ····················
- ASP.NET(C#)将汉字数字转换成阿拉伯数字
- 将Excel内容导入数据库(ASP.NET/C#)