‘壹’ java date().getTime() linux上取的时间戳比Windows上取的快了一天
时区的关系 windows一般情况下大家正也好盗也好,反正都是中文版,所以比较统一
linux上就不一定了 ,时区有可能不是北京,或上海时间
先修正时区 再看看
或这样试试
在JAVA的运行环境中加入这一行
export TZ="Asia/Shanghai"
因为我现在电脑里没linux也不知道你安装的是什么发行版本,所以这个只能你电脑里去测式了
‘贰’ linux 改了时区但是java date 还是以前的时区
在Tomca 启动的sh中,默认的设置是 -Duser.timezone=GMT,如果在程序中使用 Date = new Date()则对应的是零时区的时间。如果操作系统的时区也是零时区就没什么。如果不是就有时间偏差。以下可以帮助纠正
import Java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class Main {
‘叁’ linux怎么改系统时区
在linux中,有一些程序会自己计算时间,不会直接采用带有时区的本机时间格式,会根据UTC时间和本机所属的时区等计算出当前的时间。
比如jdk应用,时区为“Etc/UTC”,本机时间改为北京时间,通过java代码中new 出来的时间还是utc时间,所以必须得修正本机的时区。
echo 'Asia/Shanghai' >/etc/timezone
‘肆’ 如何改变linux服务器系统时区和时间
1、时区设置可以通过tzselect命令来进行设置,具体执行tzselect命令-->选择Asia-->选择China-->选择east China - Beijing, Guangdong, Shanghai, etc-->然后输入1,如下图所示,根据向导输入相应的数字键回车键即可。
‘伍’ linux系统的时区有哪些
CST:中国标准时间(China Standard TIme),这个解释可能是针对RedHat Linux。
UTC:协调世界时,又称世界标准时间,简称UTC,从英文国际时间/法文协调时间”UniversalTIme/Temps Cordonné”而来。中国大陆、香港、澳门、台湾、蒙古国、新加坡、马来西亚、菲律宾、澳洲西部的时间与UTC的时差均为+8,也就是UTC+8。
GMT:格林尼治标准时间(旧译格林威治平均时间或格林威治标准时间;英语:Greenwich Mean Time,GMT)是指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。
‘陆’ linux系统下java程序获取的时间与系统时间不一致
造成这种问题的原因是:你的操作系统时区跟你JVM的时区不一致。
你的操作系统应该是中国的时区,而JVM的时区不一定是中国时区,你在应用服务器的Java虚拟机添加如下配置: -Dfile.encoding=UTF8 -Duser.timezone=GMT+08
在一个精简的Linux安装上jre,所有的java程序获取的时间都不是系统时间。java程序获取的时间都是GMT时间,而系统是北京时间,是GMT+8,刚好相差8小时。只有两种方法可以解决 :
1、在程序中使用java的函数设定时区。
2、在启动java程序时加参数-Duser.timezone=GMT+8
jre是从/etc/sysconfig/clock这个文件中 获取时区信息的。
附clock文件内容:
ZONE="Asia/Shanghai"
UTC=false
ARC=false
ZONE -- 时区
UTC -- 表明时钟设置为UTC。
ARC -- 仅用于alpha表明使用ARC。
‘柒’ Linux系统时区不对怎么办
1、查看系统时间
#date
可以看到时区为EST(美国东部标准时间),正常显示应该是CST(中国标准时间)。
2、查看系统时区
#date -R
可以看到输出为
Fri, 21 Nov 2014 00:54:08 -0500
时区为-5
正常时区应该显示为+8(东八区)
3、确保网络通畅,DNS正常解析,尝试同步互联网时间
#ntpdate cn.pool.ntp.org
4、查看系统时区配置文件
#cat /etc/sysconfig/clock
‘捌’ linux 改了时区但是java date 还是以前的时区
数据库默认时区与服务器上不一致。如果服务器时间是你想要的,那么就是数据库时区未设置。一般情况下安装中文版的就会默认给你默认设置为东八区,应该没有问题。我先前这个中间还用了一个中间件才到数据库,但是前台增加与显示结果也都没问题(中间件会负责解析)。这种情况跟客户端一点关系都没有(除非你的date是js中的date那就有关系了)
‘玖’ 如何在Linux 中查看你的时区
linux查看与修改时区、时间的命令1、查看、修改linux时区与时间一、linux时区的查看与修改1,查看当前时区date -R2,修改设置时区方法1:tzselect方法2:仅限于RedHat linux 和 CentOStimeconfig方法3:适用于Debiandpkg-reconfigure tzdata3,复制相应的时区文件,替换系统时区文件;或者创建链接文件cp /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime在中国可以使用:cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime二、linux时间的查看与修改1、查看时间和日期date2、设置时间和日期将系统日期设定成1996年6月10日的命令date -s 06/22/96将系统时间设定成下午1点52分0秒的命令date -s 13:52:003. 将当前时间和日期写入BIOS,避免重启后失效hwclock -w三、定时同步时间* * * * * /usr/sbin/ntpdate 210.72.145.44 > /dev/null 2>&1linux中用于时钟查看和设置的命令主要有date、hwclock和clock。其中,clock和hwclock用法相近,只用一个就行,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。查看linux系统时间:date修改linux系统时间:date -s (后面跟时间)查看linux硬件时间:Java代码 hwclock #或 clock #或 hwclock –show #或 clock –show 修改linux硬件时间:C代码 hwclock –set –date #或 clock –set –date 让系统时间与硬件时钟同步,用:C代码 hwclock –hctosys #或 clock –hctosys 相反地,让硬件时钟与系统时间同步:C代码 hwclock –systohc #或 clock –systohc 让系统时间每隔十分钟去同步一下硬件时间。C代码 [hqw@localhost root]$ vi /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly */10 * * * * root hwclock --hctosys #加入此行,每隔10分钟执行一次hwclock --hctosys
‘拾’ 如何在linux下 使用java代码正确获取夏令时的时间
一:环境搭建
OpenOffice 下载地址http://www.openoffice.org/JodConverter
下载地址http://sourceforge.net/projects/jodconverter/files/JODConverter/
解压后将目录下的所有jar包放在工程的lib下面或者采用引用的方式调用这些jar包。
下载后安装,我安装的路径为D:/openOffice/install/
二:启动服务
可以通过cmd调用服务, " cd D:/openOffice/install/program"
执行
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
查看是否安装成功,查看端口对应的pid
netstat -ano|findstr 8100
查看pid对应的服务程序名
tasklist|findstr pid值
也可以把这一步省略,放到java程序中调用服务,因为启动服务占用内存比较大,在java中可以在使用
的时候调用,然后马上销毁。
三:程序代码
1:将word转换为pdf方法
1 // 将word格式的文件转换为pdf格式
2 public void Word2Pdf(String srcPath, String desPath) throws IOException {
3 // 源文件目录
4 File inputFile = new File(srcPath);
5 if (!inputFile.exists()) {
6 System.out.println("源文件不存在!");
7 return;
8 }
9 // 输出文件目录
10 File outputFile = new File(desPath);
11 if (!outputFile.getParentFile().exists()) {
12 outputFile.getParentFile().exists();
13 }
14 // 调用openoffice服务线程
15 String command = "D:/openOffice/install/program/soffice.exe -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\"";
16 Process p = Runtime.getRuntime().exec(command);
17
18 // 连接openoffice服务
19 OpenOfficeConnection connection = new SocketOpenOfficeConnection(
20 "127.0.0.1", 8100);
21 connection.connect();
22
23 // 转换word到pdf
24 DocumentConverter converter = new OpenOfficeDocumentConverter(
25 connection);
26 converter.convert(inputFile, outputFile);
27
28 // 关闭连接
29 connection.disconnect();
30
31 // 关闭进程
32 p.destroy();
33 System.out.println("转换完成!");
34 }
2:调用方法
1 @Test
2 public void testWord2Pdf() throws IOException {
3 String srcPath = "E:/test.docx";
4 String desPath = "E:/test.pdf";
5 Word2Pdf(srcPath, desPath);
6 }
以上代码经过验证,可以正常运行。
四:遇到问题
错误信息:
java.net.ConnectException: connection failed: socket,host=10.101.50.71,port=8100,tcpNoDelay=1: java.net.ConnectException: Connection refused: connect
at com.artofsolving.jodconverter.openoffice.connection.AbstractOpenOfficeConnection.connect(AbstractOpenOfficeConnection.java:79)
原因以及解决方法:第一次调用,soffice需要注册,所以到soffice.exe的安装路径下双击soffice.exe,注册即可。