日期格式转换出错,GMT,超出范围。。。

问题描述

有个日期时间转换问题,用下面两种方式都出错了。。在添加秒数时。。说是“要添加的值超出范围。参数名:value”DateTimedt=newDateTime(1970,1,1);dt=dt.AddSeconds(Convert.ToDouble(s));dt=dt.ToLocalTime();//转换为当地时间,差8小时DateTimedt=newDateTime(1970,1,1);TimeSpants=TimeSpan.FromSeconds(s);dt=dt+ts;dt=dt.ToLocalTime();//转换为当地时间,差8小时这个输入的参数值s=2829271927304753,也没超过double的范围,不知道怎么回事,求高手指点迷津啊——难道要把s分开加进去?因为s不大时,运行不会出错。

解决方案

解决方案二:
自己先顶下了好像没人碰到过这个问题啊
解决方案三:
用DateTime的最大值减去1970-1-1得到的是253402300800000而你的却是2829271927304753都大了一个数量级了,怎么可能不超出范围?
解决方案四:
引用2楼ojlovecd的回复:

用DateTime的最大值减去1970-1-1得到的是253402300800000而你的却是2829271927304753都大了一个数量级了,怎么可能不超出范围?

就是就是,给分给分
解决方案五:
你这是UNIX时间戳...Windows日历最大只支持到1万年减1秒,你要1万年以后干什么...
解决方案六:
引用2楼ojlovecd的回复:

用DateTime的最大值减去1970-1-1得到的是253402300800000而你的却是2829271927304753都大了一个数量级了,怎么可能不超出范围?

原来是这样啊外部dll返回的秒数就是这么大
解决方案七:
也就是说,那个秒数返回的是unix时间戳啊引用4楼vrhero的回复:

你这是UNIX时间戳...Windows日历最大只支持到1万年减1秒,你要1万年以后干什么...

解决方案八:
unix时间戳是毫秒级的C#的是100微秒级的
解决方案九:
谢谢s=2829271927304753dll函数返回值说明时,说返回的是和1970间的秒数,这么大的秒数,难道是为妙我不太懂啊引用7楼shaofei830927的回复:

unix时间戳是毫秒级的C#的是100微秒级的

解决方案十:
C#是没有什么时间戳的概念的...如果是指Windows计时周期,那也是100纳秒,比微秒还低一个级别...带毫微秒的UNIX时间戳是double值,UNIX时间戳跟Windows计时周期也没任何关系...你这个值虽然是128位的,但是显然不是个有效的double值...你这参数哪儿来的?如果就这一个出错那就是源的问题,跟你这边没关系...你本来也应该对输入值限定合法的范围,超出范围抛异常...谁出错谁解决,别都揽在自己身上...
解决方案十一:
引用9楼vrhero的回复:

C#是没有什么时间戳的概念的...如果是指Windows计时周期,那也是100纳秒,比微秒还低一个级别...带毫微秒的UNIX时间戳是double值,UNIX时间戳跟Windows计时周期也没任何关系...你这个值虽然是128位的,但是显然不是个有效的double值...你这参数哪儿来的?如果就这一个出错那就是源的问题,跟你这边没关系...你本来也应该对输入值限定合法的范围,超出范……

说得相当好啊。是个long型的数据,别人返回的。看来问题出在源头,我再问问
解决方案十二:
引用2楼ojlovecd的回复:

用DateTime的最大值减去1970-1-1得到的是253402300800000而你的却是2829271927304753都大了一个数量级了,怎么可能不超出范围?

+1
解决方案十三:
高手请教啊

时间: 2024-10-21 13:54:00

日期格式转换出错,GMT,超出范围。。。的相关文章

php 日期格式转换:php日期格式转换总结

php日期格式转换总结<?php//将当前时间转換成yyyy-mm-dd格式串,再转换成日期格式,绕了一圈哈echo strtotime(date('Y-m-d',time()).' 00:00:00');//将GNU 日期输入格式的字符转换成时间echo strtotime('now');//标准的字符串转换成时间$t = '2012-9-10 15:18:06';$time = strtotime($t);//将时间转换成日期字符yyyymmdd,再转换成整型格式$d = intval(da

Excel日期格式转换动画教程

<Excel2003入门动画教程5.Excel日期格式转换>. 演示动画 操作步骤 默认情况下,在Excel中,我们输入的日期格式是"2005-1-16",不太符合中国人的习惯.我们可以通过格式设置,将其设置为中文日期格式. 选中日期所在的单元格,执行"格式→单元格"命令,打开"单元格格式"对话框,在"数值"标签中,选中"分类"下面的"日期"选项,然后在右侧的"类型

excel日期格式转换

日期格式转换 格式一:输入20120920时,自动转换为2012-09-20 首先打开Excel表格,选中需要转换的单元格,然后点击鼠标右键,在弹出的列表中选择[设置单元格格式].如图所示: 在弹出的窗口中,点击上面[数字]按钮,在列表中选择[自定义]选项,然后再类型输入框中输入[0000-00-00]格式,点击确定.如图所示: 显示格式,我们来看看刚才设置的格式吧,选择刚才设置的单元格,输入20120920,然后回车.如图所示: 电脑教程 日期格式转换 格式二:输入20120920时,自动转换

sql 日期格式转换,如:2012年10月18日 转换为2012-10-18

问题描述 sql 日期格式转换,如:2012年10月18日 转换为2012-10-18 请问下,我sql数据库中有个date字段,字段里面的值都是这种类型数据:2012年10月18日. 我想把这些数据类型转换成2012-10-18.语句改怎么写啊 解决方案 你是说把date字段中的值全都改了吗? 似乎不行,只能取出来转换一下使用,或者变换完再存进去 解决方案二: Select CONVERT(varchar(100), GETDATE(), 23) 解决方案三: 用format不行吗? 解决方案

js和C# 时间日期格式转换的简单实例_javascript技巧

下午在搞MVC和EXTJS的日期格式互相转换遇到了问题,我们从.NET服务器端序列化一个DateTime对象的结果是一个字符串格式,如 '/Date(1335258540000)/' 这样的字串. 整数1335258540000实际上是一个1970 年 1 月 1 日 00:00:00至这个DateTime中间间隔的毫秒数.通过javascript用eval函数可以把这个日期字符串转换为一个带有时区的Date对象,如下 用var date = eval('new ' + eval('/Date(

php将日期格式转换成xx天前的格式_php技巧

本文实例讲述了php将日期格式转换成xx天前格式的方法.分享给大家供大家参考.具体如下: 这段代码可以把时间格式化成3天前,5秒前,2年前的形式 // convert a date into a string that tells how long ago // that date was.... eg: 2 days ago, 3 minutes ago. function ago($d) { $c = getdate(); $p = array('year', 'mon', 'mday',

timestamp-求助db2日期格式转换问题

问题描述 求助db2日期格式转换问题 insert into studentNumber (ID, CREATE_DATE, CREATE_USER, UPDATE_DATE, UPDATE_USER, VERSION, BANK_CODE, CATEGORY_CODE_, CODE_, DESC_, MEMO_, INST_CODE, INDEX_) values ('795', '23-4月 -13 09.42.26.000000 上午', 'op_gzns', '04-10月-13 06.

delphi 日期格式转换问题

问题描述 delphi 日期格式转换问题 如何把这样的字符串 Jan 4 2012 3:12:27:866PM 转化成为正常的格式日期 yyyymmddhhnnsszzz 解决方案 按照解析规则解析拼凑咯

关于日期格式转换问题

问题描述 我在数据库中time1和time2是用datetime型的,在页面中用如下语句获得time1和time2的值,为的是查询某段时间内的数据,结果出错.请各位大侠帮帮忙,感激不尽.Datetime1=Date.valueOf(request.getParameter("time1"));Datetime2=Date.valueOf(request.getParameter("time2"));错误提示如下:2011-4-1414:14:47org.apache