solr和java时区时间日期转化方法

我们一般得到的时间为当地时区的时间,而我存储到服务器上时想得到格林威治时间(GMT)和世界协调时间(UTC)。一种是通过时间差计算:目标时区时间+时区差=本时区的时间。另一种则是通过设置时区不过要调用set方法,在多线程情况下调用set会发生错误,所以最好使用第一种:

第一种代码:

package com;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

public class Test1 {
	/**
	 * chunlei
	 * @param args
	 */
	public static void main(String[] args){
		Date date = new Date();
		Long time = date.getTime();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-SS");
		System.out.println(sdf.format(date));
		System.out.println(TimeZone.getDefault().toString());//打印当前时区,为东八区
		int timeDiff = TimeZone.getDefault().getRawOffset()
						- TimeZone.getTimeZone("GMT").getRawOffset();//本地时区和目标时区差
		Long time1 = time - timeDiff;
		Date targetDate = new Date(time1);
		System.out.println(sdf.format(targetDate));
	}
}

上面显示结果:

2014-08-06 23-04-871
sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null]
2014-08-06 15-04-871

第二种方法:

package com;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

public class Test1 {
	/**
	 * chunlei
	 * @param args
	 */
	public static void main(String[] args){
		Date date = new Date();
		Long time = date.getTime();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-SS");
		System.out.println(sdf.format(date));
		sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
		System.out.println(sdf.format(date));//这种方式只有在调用sdf转化的时候可以
		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH-mm-SS");
		System.out.println(sdf1.format(date));
	}
}

执行结果:

2014-08-06 23-25-380
2014-08-06 15-25-380
2014-08-06 23-25-380

solr和java时区时间日期转化方法,布布扣,bubuko.com

时间: 2024-10-29 19:06:53

solr和java时区时间日期转化方法的相关文章

Java 获取指定日期的方法总结 -转

格式化日期 String-->Date  或者 Data-->String SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");    Date  date = sdf.parse("2009-11-04");//String-->Date String  sdate  = sdf.format(date );// Data-->String ==================

Java 8 时间日期库的20个使用示例

java 8是如何处理时间及日期的 有人问我学习一个新库的最佳途径是什么?我的回答是,就是在实际项目中那样去使用它.在一个真实的项目中会有各种各样的需求,这会促使开发人员去探索和研究这个新库.简言之,只有任务本身才会真正促使你去探索及学习.java 8的新的日期及时间API也是一样.为了学习Java 8的这个新库,这里我创建了20个以任务为导向的例子.我们先从一个简单的任务开始,比如说如何用Java 8的时间日期库来表示今天,接着再进一步生成一个带时间及时区的完整日期,然后再研究下如何完成一些更

Java中时间日期格式化

1.与日期时间相关的类:      第一:java.util.Date;                         将时间作为一个整体使用.处理时,使用Date类较为简便      第二:java.util.Calender;                   要处理时间的一部分,如月.分时,使用Calendar类较为简便      第三:java.text.DateFormat               抽象类,是SimpleDateFormate的父类      第四:java.t

Java 8 时间日期库的20个使用演示样例

除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务演示样例来学习怎样使用Java 8的这套API.Java对日期,日历及时间的处理一直以来都饱受诟病.尤其是它决定将java.util.Date定义为可改动的以及将SimpleDateFormat实现成非线程安全的. 看来Java已经意识到须要为时间及日期功能提供更好的支持了,这对已经习惯使用Joda时间日期库的社区而言也是件好事. 关于这个新的时间日期库的最

Java中时间日期的计算及相互转换

Java中表示时间日期的主要是Date和Calendar两个类,以及Date与String转换用到的SimpleDateFormat类. 0x00:Date与long类型之间的转换 Java内部使用UTC时间,保存距1970年01月01日00时00分00秒以来所经历的毫秒值,使用的是long类型. //需要导入java.util包里的Date类 import java.util.Date; long millis = 0; Date date = new Date(); //将date转为mil

Java实现时间日期格式转换示例

package com.hanqi.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * 日期转换器 * * @author asus * */ public class DateConvertor { private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd H

java采用DateFormat日期格式化方法判断用户今天是否第一次登录(比较简单)

一.描述 1.数据库中有一个date类型的last_login_time字段,即用户每次登录都会更新该字段: 2.在登录时使用jdbcTemplate的queryForObject方法,取出last_login_time字段的值以Date类型返回,并用DateFormat格式化该时间 3.获取系统当前时间,并用DateFormat格式化,比较两个时间是否相等就可以判断该用户今天是否第一次登录. 上次我写的判断用户当天是否第一次登录的方法采用字符串的比较方式,使用起来很繁琐,效率也不高,因此今天进

Java 获取指定日期的方法总结

格式化日期 String-->Date 或者 Data-->String SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = sdf.parse("2009-11-04");//String-->Date String sdate = sdf.format(date );// Data-->String =========================

java获取时间日期代码

public class test1 { public  static void main(String[] args){ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd "); //设置日期格式 System.out.println(df.format(new Date())); //输出当前时间 Calendar c = Calendar.getInstance(); //设置日期格式 System.out.printl