将14位整数转换为c#中的DateTime



我需要您的支持来转换整数: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");
  1. 子串中的第一个参数是开始索引
  2. Substring中的第二个参数是长度

相关内容

  • 没有找到相关文章

最新更新