-
java系统时区不是东八区,如何获取当前东八区的Date
2019-05-22 16:21:46由于服务器时区不是东八区,且不方便修改服务器时区,而存数据库的需要是北京时间的datetime类型,目前用的方法如下: ``` public static Date getCurrentDate() { LocalDateTime datetime = LocalDateTime.... -
如何在东八区的计算机上获取美国时间
2019-04-10 20:47:40在Java语言中,可以通过java.util.Calendar类取得一个本地时间或者指定时区的时间实例,如下: // 取得本地时间: Calendar cal = Calendar.getInstance(); //取得指定时区的时间: TimeZone zone = TimeZone....既可以用旧API(JDK8之前),也可以使用新API。以下用旧API为例:
在Java语言中,可以通过java.util.Calendar类取得一个本地时间或者指定时区的时间实例,如下:
// 取得本地时间: Calendar cal = Calendar.getInstance(); //取得指定时区的时间: TimeZone zone = TimeZone.getTimeZone(“GMT-8:00″); Calendar cal = Calendar.getInstance(zone);
//获取指定时区 Calendar cal = Calendar.getInstance(Locale.CHINA);
/** * 获得东八区时间 * * @return */ public static String getChinaTime() { TimeZone timeZone = TimeZone.getTimeZone("GMT+8:00"); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); simpleDateFormat.setTimeZone(timeZone); return simpleDateFormat.format(new Date());
先取得UTC时间,然后再转换为东八区时间
/** * 得到UTC时间,类型为字符串,格式为"yyyy-MM-dd HH:mm" * 如果获取失败,返回null * * @return */ public static String getUTCTimeStr() { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); StringBuffer UTCTimeBuffer = new StringBuffer(); // 1、取得本地时间: Calendar cal = Calendar.getInstance(); // 2、取得时间偏移量: int zoneOffset = cal.get(Calendar.ZONE_OFFSET); // 3、取得夏令时差: int dstOffset = cal.get(Calendar.DST_OFFSET); // 4、从本地时间里扣除这些差量,即可以取得UTC时间: cal.add(Calendar.MILLISECOND, -(zoneOffset + dstOffset)); int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH) + 1; int day = cal.get(Calendar.DAY_OF_MONTH); int hour = cal.get(Calendar.HOUR_OF_DAY); int minute = cal.get(Calendar.MINUTE); int second = cal.get(Calendar.SECOND); UTCTimeBuffer.append(year).append("-").append(month).append("-").append(day); UTCTimeBuffer.append(" ").append(hour).append(":").append(minute).append(":").append(second ); try { format.parse(UTCTimeBuffer.toString()); return UTCTimeBuffer.toString(); } catch (ParseException e) { e.printStackTrace(); } return null; } /** * 将UTC时间转换为东八区时间 * @param UTCTime * @return */ public static String getLocalTimeFromUTC(String UTCTime){ Date UTCDate; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String localTimeStr = null ; try { UTCDate = format.parse(UTCTime); format.setTimeZone(TimeZone.getTimeZone("GMT-8")) ; localTimeStr = format.format(UTCDate) ; } catch (ParseException e) { e.printStackTrace(); } return localTimeStr ; }
获取各个时区的时间
/** * 获得任意时区的时间 * * @param timeZoneOffset * @return */ public static String getFormatedDateString(float timeZoneOffset) { if (timeZoneOffset > 13 || timeZoneOffset < -12) { timeZoneOffset = 0; } int newTime = (int) (timeZoneOffset * 60 * 60 * 1000); TimeZone timeZone; String[] ids = TimeZone.getAvailableIDs(newTime); if (ids.length == 0) { timeZone = TimeZone.getDefault(); } else { timeZone = new SimpleTimeZone(newTime, ids[0]); } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); sdf.setTimeZone(timeZone); return sdf.format(new Date());
-
java calender获取时间
2014-03-02 21:37:051、获取年月日,时间 Calendar c = Calendar.getInstance(TimeZone.... //获取东八区时间 int year = c.get(Calendar.YEAR); //获取年 int month = c.get(Calendar.MONTH) + 1; //获取月份,0表示1月份 int1、获取年月日,时间 Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00")); //获取东八区时间 int year = c.get(Calendar.YEAR); //获取年 int month = c.get(Calendar.MONTH) + 1; //获取月份,0表示1月份 int day = c.get(Calendar.DAY_OF_MONTH); //获取当前天数 int first = c.getActualMinimum(c.DAY_OF_MONTH); //获取本月最小天数 int last = c.getActualMaximum(c.DAY_OF_MONTH); //获取本月最大天数 int time = c.get(Calendar.HOUR_OF_DAY); //获取当前小时 int min = c.get(Calendar.MINUTE); //获取当前分钟 int xx = c.get(Calendar.SECOND); //获取当前秒 SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String curDate = s.format(c.getTime()); //当前日期 System.out.println("当前时间:"+year + "-" + month + "-"+ day + " "+time + ":" + min +":" + xx); System.out.println("第一天和最后天:" + first +"," + last); System.out.println("当前日期curDate====:" + curDate); 输出结果: 当前时间:2012-9-25 22:50:54 第一天和最后天:1,30 当前日期curDate:2012-09-25 22:50:54 二、 Calendar的计算 c.add(Calendar.YEAR, 1); c.add(Calendar.MONTH, 1); c.add(Calendar.DAY_OF_MONTH, 1); int year2 = c.get(Calendar.YEAR); int month2 = c.get(Calendar.MONTH) + 1; int day2 = c.get(Calendar.DAY_OF_MONTH); int firstD = c.getActualMinimum(c.DAY_OF_MONTH); int lastD = c.getActualMaximum(c.DAY_OF_MONTH); System.out.println("当前时间:"+year2 + "-" + month2 + "-"+ day2 + " "+time + ":" + min +":" + xx); System.out.println("第一天和最后天:" + firstD +"," + lastD); 输出结果: 当前时间:2013-10-26 23:4:3 第一天和最后天:1,31
三、 获取上个月的年、月、日 Calendar c=Calendar.getInstance(); c.add(Calendar.MONTH, -1);//上个月 SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String year=String.valueOf(c.get(Calendar.YEAR)); String topDay = String.valueOf(c.getActualMinimum(Calendar.DAY_OF_MONTH)); String lastDay = String.valueOf(c.getActualMaximum(Calendar.DAY_OF_MONTH)); //上个月 String lastMonth=String.valueOf(c.get(Calendar.MONTH)+1).length()==2?String.valueOf(c.get(Calendar.MONTH)+1):"0"+String.valueOf(c.get(Calendar.MONTH)+1); String topDayMonth=year+"-"+lastMonth+"-"+"01" + " 00:00:00"; String lastDayMonth = year+"-"+lastMonth+"-"+lastDay+ " 23:59:59"; System.out.println("###year:" + year); System.out.println("###last month:" + lastMonth); System.out.println("###topday:" + topDayMonth); System.out.println("###lastday:" + lastDayMonth); 输出结果 ###year:2013 ###last month:04 ###topday:2013-04-01 00:00:00 ###lastday:2013-04-30 23:59:59
/** * 获取某个日期(someDay) n 天前的日期 * * @param someDay 格式:YYYYMMDD * @param n * @return */ public static String getSomeDayBeforeNDay(String someDay, int n, String format) { try { SimpleDateFormat sdf = new SimpleDateFormat(format); Date date = sdf.parse(someDay); Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.DAY_OF_MONTH, -n); return sdf.format(cal.getTime()); } catch (ParseException e) { e.printStackTrace(); // System.out.println(e.getMessage()); } return null; } /** * 获取某个日期(someDay) n 天后的日期 * * @param someDay 格式:YYYY-MM-DD * @param n * @return */ public static String getSomeDayAfterNDay(String someDay, int n) { try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = sdf.parse(someDay); Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.DAY_OF_MONTH, n); return sdf.format(cal.getTime()); } catch (ParseException e) { e.printStackTrace(); // System.out.println(e.getMessage()); } return null; }
/** * 获取某个月(someMon) n 月前的月份 * * @param someMon 格式:yyyyMM * @param n * @return 格式:yyyyMM */ public static String getSomeMonBeforeNMon(String someMon, int n) { try { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM"); Date date = sdf.parse(someMon); Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.MONTH, -n); return sdf.format(cal.getTime()); } catch (ParseException e) { e.printStackTrace(); // System.out.println(e.getMessage()); } return ""; } /** * 取某个年(someYear) n 年前的年份 * * @param someYear 格式:yyyy * @param n * @return 格式:yyyy * @see [类、类#方法、类#成员] */ public static String getSomeYearBeforeNYear(String someYear, int n) { try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); Date date = sdf.parse(someYear); Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.YEAR, -n); return sdf.format(cal.getTime()); } catch (ParseException e) { e.printStackTrace(); // System.out.println(e.getMessage()); } return ""; }
/** * 获得上个月第一天 * * @return */ public static String getLastMonFirst() { Calendar ca = Calendar.getInstance(); ca.set(Calendar.MONTH, Calendar.getInstance().get(Calendar.MONTH) - 1); ca.set(Calendar.DAY_OF_MONTH, 1); SimpleDateFormat s = new SimpleDateFormat("yyyyMMdd"); return s.format(ca.getTime()); } /** * 获得上个月最后一天 * * @return */ public static String getLastMonLast() { Calendar ca = Calendar.getInstance(); ca.set(Calendar.MONTH, Calendar.getInstance().get(Calendar.MONTH) - 1); ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)); SimpleDateFormat s = new SimpleDateFormat("yyyyMMdd"); return s.format(ca.getTime()); }
-
java获取当前年月日历_转:JavaCalendar获取年、月、日、时间
2020-12-24 21:30:22Calendarc=Calendar.getInstance(TimeZone.getTimeZone("GMT+08:...//获取东八区时间intyear=c.get(Calendar.YEAR);//获取年intmonth=c.get(Calendar.MONTH)+1;//获取月份,0表示1月份intday=c.get(Calendar.DAY_OF...Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00")); //获取东八区时间
int year = c.get(Calendar.YEAR); //获取年
int month = c.get(Calendar.MONTH) + 1; //获取月份,0表示1月份
int day = c.get(Calendar.DAY_OF_MONTH); //获取当前天数
int first = c.getActualMinimum(c.DAY_OF_MONTH); //获取本月最小天数
int last = c.getActualMaximum(c.DAY_OF_MONTH); //获取本月最大天数
int time = c.get(Calendar.HOUR_OF_DAY); //获取当前小时
int min = c.get(Calendar.MINUTE); //获取当前分钟
int xx = c.get(Calendar.SECOND); //获取当前秒
SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String curDate = s.format(c.getTime()); //当前日期
System.out.println("当前时间:"+year + "-" + month + "-"+ day + " "+time + ":" + min +":" + xx);
System.out.println("第一天和最后天:" + first +"," + last);
System.out.println("当前日期curDate====:" + curDate);
输出结果:
当前时间:2012-9-25 22:50:54
第一天和最后天:1,30
当前日期curDate:2012-09-25 22:50:54
Calendar的计算
c.add(Calendar.YEAR, 1);
//当前年份加1年
c.add(Calendar.MONTH, 1);
//当前月份加1个月
c.add(Calendar.DAY_OF_MONTH, 1);
//当前天数加1天
int year2 = c.get(Calendar.YEAR);
int month2 = c.get(Calendar.MONTH) + 1;
int day2 = c.get(Calendar.DAY_OF_MONTH);
int firstD = c.getActualMinimum(c.DAY_OF_MONTH);
int lastD = c.getActualMaximum(c.DAY_OF_MONTH);
System.out.println("当前时间:"+year2 + "-" + month2 + "-"+ day2 + " "+time + ":" + min +":" + xx);
System.out.println("第一天和最后天:" + firstD +"," + lastD);
输出结果:
当前时间:2013-10-26 23:4:3
第一天和最后天:1,31
获取上个月的年、月、日
Calendar c=Calendar.getInstance();
c.add(Calendar.MONTH, -1);//上个月
SimpleDateFormat s=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String year=String.valueOf(c.get(Calendar.YEAR));
String topDay = String.valueOf(c.getActualMinimum(Calendar.DAY_OF_MONTH));
String lastDay = String.valueOf(c.getActualMaximum(Calendar.DAY_OF_MONTH));
//上个月
String lastMonth=String.valueOf(c.get(Calendar.MONTH)+1).length()==2?String.valueOf(c.get(Calendar.MONTH)+1):"0"+String.valueOf(c.get(Calendar.MONTH)+1);
String topDayMonth=year+"-"+lastMonth+"-"+"01" + " 00:00:00";
String lastDayMonth = year+"-"+lastMonth+"-"+lastDay+ " 23:59:59";
System.out.println("###year:" + year);
System.out.println("###last month:" + lastMonth);
System.out.println("###topday:" + topDayMonth);
System.out.println("###lastday:" + lastDayMonth);
输出结果
###year:2013
###last month:04
###topday:2013-04-01 00:00:00
###lastday:2013-04-30 23:59:59
转自
http://hi.baidu.com/zzm_2007/item/3b967b1cd1586e4e2b3e2258
-
java获取系统时间存在时差
2013-09-13 18:43:25发布的项目使用64位JDK,Java...设置JVM的默认时区为东八区(北京时间) 在下面四个目录: Java\jre6\lib\zi\Etc Java\jre6\lib\zi Java\jdk1.6.0_18\jre\lib\zi\Etc Java\jdk1.6.0_18\jre\lib\zi 引用下找到发布的项目使用64位JDK,Java获取的时间总比正常的时候慢8小时,但服务器的时间及时区都是正确的,解决方法:
设置JVM的默认时区为东八区(北京时间)
在下面四个目录:Java\jre6\lib\zi\Etc Java\jre6\lib\zi Java\jdk1.6.0_18\jre\lib\zi\Etc Java\jdk1.6.0_18\jre\lib\zi
引用下找到GMT文件备份一下,然后复制一份GMT-8并重命名为GMT
,复制完毕,重新运行一下java程序问题即可解决!如果系统时间显示不对,可以通过1、找到相应的时区文件 /usr/share/zoneinfo/Asia/Shanghai
用这个文件替换当前的/etc/localtime文件。
或者找你认为是标准时间的服务器,然后
#scp root@xxx.xxx.xxx.xxx:/etc/localtime /etc/localtime
2>
修改/etc/sysconfig/clock文件,修改为:
ZONE="Asia/Shanghai"
UTC=false
ARC=false
-
Java获取时间与系统时间相差8小时终极解决方案
2018-06-29 11:31:33一、在取日期以前设置一下时区...此种方法适用于单次快速获取系统本地时间二、设置java命令参数java -Duser.timezone=Asia/Jerusalem DateTest三、设置JVM的默认时区为东八区(北京时间)在下 面四个目录(bea\jdk1... -
Java Calendar获取年、月、日、时间
2017-07-11 18:52:21Java Calendar获取年、月、日、时间 Calendar c = Calendar.getInstance(TimeZone... //获取东八区时间 int year = c.get(Calendar.YEAR); //获取年 int month = c.get(Calendar.MONTH) + 1; -
用java获取指定时区的时间
2018-05-04 11:29:04都需要统一,尤其是用户下单之类的,涉及到订单15分钟超时失效问题,所以就更应该统一,目前我们是都统一成东八区北京时间,具体代码如下,如果哪位大神发现代码有问题,请留言指教import java.text.... -
Java获取时间与系统时间相差8小时的解决方法
2012-01-30 12:15:29Java获取时间与系统时间相差8小时的解决方法 发布的项目Java获取的时间...设置JVM的默认时区为东八区(北京时间) 在下面四个目录(Java\jre6\lib\zi\Etc、Java\jre6\lib\zi、Java\jdk1.6.0_18\jre\lib\zi\Et... -
8.Java Calendar获取年、月、日、时间
2018-07-31 10:23:19Java Calendar获取年、月、日、时间 Calendar c = Calendar.getInstance(Time... //获取东八区时间 int year = c.get(Calendar.YEAR); //获取年 int month = c.get(Calendar.MONTH) + 1; //... -
【Java】Calendar获取年、月、日、时间
2018-04-17 16:34:55转自:https://www.cnblogs.com/longYou/p/6382399.htmlCalendar c = Calendar.getInstance(TimeZone.getTimeZone("... //获取东八区时间 //获取年 int year = c.get(Calendar.YEAR); //获取... -
java 获取utc格式的时间_代码中的时间格式问题究竟该如何处理?
2020-11-29 07:42:26作者 | 曹建责编 | 屠敏出品 | CSDN(ID:CSDNnews...我们生活中采用的时间是东八区时间, 东八区(UTC / GMT+08:00)是比世界协调时间(UTC)/ 格林尼治标准时间(GMT)快8小时的时区,理论上的位置是位于东经112.5度至127...
-
河北省乡镇行政边界shp文件
-
Linux基础入门系列课程
-
sam-ba_2.12.exe.zip
-
美国凯斯西储大学轴承测试数据CWRU,从官网下载的mat版本,有需要的可以下载
-
漫画算法-学习笔记(04)
-
矩阵最短路径-动态规划
-
Unity 热更新技术-ILRuntime
-
最新2021年启牛快.财蓝鲸的课值得学习,帮助大吗
-
一张完整的中国亲戚关系图
-
羽量级在线 HTML 编辑器
-
刘彬20000词汇06
-
MySQL你该了解的那些事【服务端篇】
-
PPT大神之路高清教程
-
项目管理工具与方法
-
二极管抽运全固态1.319 μm连续锁模激光器
-
我的go语音环境安装
-
leetcode 剑指 Offer 22. 链表中倒数第k个节点
-
华工信号与系统真题与详解.zip
-
js获取闭区间内的随机整数
-
33-docker学习笔记.docx