我需要您的支持来转换整数:20160513225918
我想要像:2016-05-13 22:59:18
谢谢。
您只需使用基本算法即可,无需字符串解析
var value = 20160513225918;
return new DateTime(
(int)(value / 10000000000),
(int)(value / 100000000 % 100),
(int)(value / 1000000 % 100),
(int)(value / 10000 % 100),
(int)(value / 100 % 100),
(int)(value % 100));
dotnetfiddle
要点:首先,您的值不适合integer数据类型,因为值会溢出。Int
接受-2147483648到2147483647之间的值。尝试将该值存储在long
中
当您尝试DateTime.ParseExact()
时,它将抛出一个错误输入字符串未被识别为有效的日期时间
因此,您可以使用substring
提取每个单独的零件
像这个
long data = 20160513225918;
int year = int.Parse(data.ToString().Substring(0, 4));
int month = int.Parse(data.ToString().Substring(4, 2));
int day = int.Parse(data.ToString().Substring(6, 2));
int hour = int.Parse(data.ToString().Substring(8, 2));
int minute = int.Parse(data.ToString().Substring(10, 2));
int second = int.Parse(data.ToString().Substring(12, 2));
//bellow line will get you "2016-05-13 22:59:18"
var date = new DateTime(year, month, day, hour, minute, second).ToString("yyyy-MM-dd HH:mm:ss");
- 子串中的第一个参数是开始索引
- Substring中的第二个参数是长度