Articles of date时间

为什么两个date之间的天数没有正确显示?

我目前正在尝试获取两个date之间的天数。 Date1 : 21-JAN-15 Date2 : 23-JUL-15 在我的本地eclipse tomcat服务器(在印度),我得到的天数为: 183与以下代码: Calendar cal1 = new GregorianCalendar(); Calendar cal2 = new GregorianCalendar(); Date date1 = new Date("21-JAN-15"); Date date2 = new Date("23-JUL-15"); cal1.setTime(date1); cal2.setTime(date2); System.out.println("Days= "+daysBetween(cal1.getTime(),cal2.getTime())); public int daysBetween(Date d1, Date d2){ return (int)( (d2.getTime() – d1.getTime()) / (1000 * 60 * 60 * 24)); } 当我将相同的java文件复制到一个linux服务器,并使用javac和java命令运行文件时,我得到的差异是:182,这是less一天。 […]

如何find某个名字的最新文件?

假设我有一个在子目录中有许多同名文件的目录(例如,在为多篇学术论文保留BibTeX文件时出现)。 用特定名称查找文件的最新版本的最佳方法是什么? 我已经拿出了下面的命令 find . -name "someFile" -exec ls -alF {} \; 其中列出了所有名为someFile的文件以及它们的date,但是不会将它们从旧到新sorting。 请注意, ls的-t选项不能在这里使用,因为它是针对每个文件单独运行的。

热点JVM如何精确确定Linux(Centos)上的当前时区?

在Docker容器内运行的JVM实例(主机和容器均为Cent OS 6.5)中当前时区未正确确定时,遇到问题。 首先我已经通过-v /etc/localtime:/etc/localtime:ro映射了etc/localtime到子容器-v /etc/localtime:/etc/localtime:ro (我认为这是一种普遍的方式 ) 当我通过SSHlogin主机和容器 date-u 打印Mon Apr 20 11:48:57 UTC 2015 和 date 打印Mon Apr 20 14:50:41 MSK 2015 然而在JVM中 System.out.println(new Date()); 我得到Mon Apr 20 11:52:24 UTC 2015内部容器和Mon Apr 20 14:53:17 MSK 2015主机内。 现在的时区是如何确定的? Oracle常见问题解答并没有说明问题 ,我不太清楚Java使用什么指标来获取当前用户的时区 我的操作系统的时区修补程序是否修复了Java平台的时区数据? 不可以。Java SE平台的时区数据不从本地或主机操作系统读取。 Java SE平台作为Java Runtime Environment(JRE)软件的一部分,在本地安装的文件(… / jre / lib / zi)中维护时区数据的私有存储库。 应用任何操作系统时区补丁(例如Solaris […]

格林尼治标准时间(GMT)/ UTC时差(小时/分钟),无夏时制(DST)

我已经看到了与这个问题有关的其他编程语言或操作系统的一些问题/答案,但我没有发现我的具体情况的通用解决scheme。 我想在一个Linux shell脚本或纯C中获得给定时区的GMT偏移量(普通标识符如EDT,CET或欧洲/柏林)。 一个简单的解决scheme是: $ TZ=":Europe/Berlin" date +%z 但是这将打印当前的 GMT偏移量(包括当前正在使用的DST)。 这里有一个更好的例子来展示我的意思: $ TZ=":Europe/Berlin" date +%z –date="1 Jan 2014" +0100 $ TZ=":Europe/Berlin" date +%z –date="1 May 2014" +0200 我需要一个选项来获取任何国家/城市的非DST值(这里:+0100)。 其他问题可以解决我的问题,并与此有关: 如何find一个给定的城市(欧洲/柏林)的正确的非DST时区(Etc / GMT-1)而不知道提前抵消? 您如何知道DST在给定时间戳处于活动状态? $ TZ=":Europe/Berlin" date –date="2014-01-01" Wed Jan 1 00:00:00 CET 2014 $ TZ=":Europe/Berlin" date –date="2014-05-01" Thu May 1 00:00:00 CEST 2014 CEST(欧洲中部夏令时)和CET(中欧时间)的标识符在世界其他地方可能并不常见,所以如果有人需要,可以select简单得到DST = […]

微秒到Excel导致4年的date差异

编辑 :为了更多的帮助更多的用户,我已经用更多的关键字更新了这个问题,所以在将来这个问题的每个人都可以很容易地解决这个问题。 (感谢你的回答!) 我已经检查了这个问题将毫秒转换为date(在Excel中)将我的毫秒数转换为Excel中的date时间。 然而! 这里有3个值我试图转换为例如:1375540284420 1375540284786 1375540284788 这个网站: http ://www.ruddwire.com/handy-code/date-to-millisecond-calculators/#.UsbP4_TuLig给我Sat Aug 03 2013 16:31:24 GMT + 0200作为答案的第一个毫秒我'上面张贴了。 但是,Excel给了我14:31 04-08-2017 我错过了什么? 你能帮我吗,我已经尝试了几个转换,但没有一个是正确的。 感谢提前

改进Windows 2008服务的格式

我有一个大问题,我有Windows Server 2008 R2,当我启动一个程序(4D服务器),它采取date格式从系统configuration( dd/mm/yyyy ),但是当我启动相同的程序使用系统服务4D服务器将date格式设置为mm/dd/yyyy 。 我无法理解,因为系统date设置为(年dd/mm/yyyy ) 任何想法来解决它? 是否可以将date格式设置为运行该服务的默认用户? 或者更改默认的date格式为Windows服务器中的服务? 提前致谢。

意外的Windows批处理行为 – 赋值后variables重置 – 在FILE和SET中使用FOR%f获取文件date

我试图比较一个文件的创builddate到今天的date,并有一个工作的解决scheme: FOR %%f IN (%ARCHIVE_FILE%) DO SET FileDate=%%~tf IF [%FileDate:~0,-6%] == [%CURRENT_DATE%] goto finish 由于某种原因,在Windows机器上部署这个批处理脚本的时候(两台不同的Windows机器上),FileDatevariables被设置为预期的结果,例如“dd / mm / yy mm:ss” ,然后重置为空。 把: echo %FileDate% pause 在两行之间显示FileDate被正确分配,然后直接分配给“”。 我无法find答案,并想知道是否有一些稀有的大师们可能对某些事情有所了解:/。 谢谢你的帮助。 编辑: 移动到forfiles解决scheme,我将添加任何人寻找替代: forfiles /p %ARCHIVE_DIR% /m %FILE_NAME% /d 0 && ( goto finish ) || ( goto start ) 这应该就够了,我还没有在我需要的机器上检查它。 找出上述初始解决scheme为什么会失败,这还是很好的,哈哈。

Linux本地与UTC时间(以秒为单位)

你能解释一下这两种语法有什么问题吗? 如果我同时运行这两个命令: date -u +%s # – for UTC – returns eg 1303430843. date +%s # – for local time – mine is set to pacific time # – also returns eg 1303430843 我得到了完全相同的数字(例如1303430843)秒,没有区别,但我预计25200秒-7小时的差异,就像我运行: date -u "+%Y-%m-%d %H:%M:%S" # returns: 2011-04-22 00:01:14 date "+%Y-%m-%d %H:%M:%S" # returns: 2011-04-21 17:01:14 – 7 hours difference 这里有什么? 谢谢

bash脚本执行date/时间

我正试图弄清楚这一段时间了。 我在Linux环境下有一个bash脚本,为了安全起见,我想阻止在9am和5pm之间执行,除非给出一个标志。 所以如果我在上午9点到下午5点之间执行./script.sh,它会说“不行”,但是如果我执行./script.sh,则会绕过检查。 基本上确保这个人不会意外地做某事。 我已经尝试了一些date命令,但不能把这个东西包装在我的脑海里。 任何人都可以帮忙吗?

如何获得date和时间string精确到毫秒在Linux中的C + +?

我希望能够以毫秒的分辨率将当地时间和date放入string中,如下所示: YYYY-MM-DD hh:mm:ss.sss 看起来像一个简单的事情,但我还没有find一个简单的答案,如何做到这一点。 我正在用C ++编写,并且有权访问11编译器,但是如果它更干净,使用C解决scheme就可以。 我在这里find了一个解决scheme, 获取date和时间,但毫无疑问,使用标准库可能不是那么困难。 我可能会继续推进这种解决scheme,但希望通过在这里提出这个问题来增加知识库。 我知道这会起作用,但又似乎不必要的困难: #include <sys/time.h> #include <stdio.h> int main(void) { string sTimestamp; char acTimestamp[256]; struct timeval tv; struct tm *tm; gettimeofday(&tv, NULL); tm = localtime(&tv.tv_sec); sprintf(acTimestamp, "%04d-%02d-%02d %02d:%02d:%02d.%03d\n", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, (int) (tv.tv_usec / 1000) ); sTimestamp = acTimestamp; cout << […]