java中对时间的操作(望批评指正...)

代码演示:

//数据库中去的日期

Date s = list.get(0).getSdate();

System.out.println(s);// Tue Apr 28 00:00:00 CST 2015

//手动new

Date d = new Date();

System.out.println(d);// Tue Apr 28 20:53:15 CST 2015

System.out.println("++" + s.after(d));

//使用Calendar

Calendar calendar = Calendar.getInstance();

Date time = calendar.getTime();

System.out.println(time);// Tue Apr 28 20:55:16 CST 2015

//使用日期格式化

SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");

String format2 = format.format(s);

System.out.println("format2" + format2);// 2015/04/28

//再解析

Date parse = format.parse(format2);

System.out.println("parse" + parse);// Tue Apr 28 00:00:00 CST 2015

System.out.println("???" + (s.getTime() >= parse.getTime()));// true
  //使用jodatime

DateTime dt = new DateTime();

System.out.println(dt);// 2015-04-28T21:00:28.780+08:00

System.out.println(dt.toDate());// Tue Apr 28 21:00:28 CST 2015

写了2个方法,用于处理:

1.比较2个日期大小(只比较年月日部分)
/**
  * 对2个日期进行比较,无论是从数据库中取出的date,还是new的
  * @param d1
  * @param d2
  * @return
  */
 private String compareDate(Date d1,Date d2){
  if(d1==null || d2==null){
   return "error";
  }
  long time1 = new LocalDate(d1).toDate().getTime();
  long time2 = new LocalDate(d2).toDate().getTime();
  if(time1>time2){
   return ">";
  }else if(time1==time2){
   return "==";
  }else{
   return "<";
  }
 }
2.比较2个日期大小(只比较年月日部分)
// 只比较年月日大小
 private String compareDate(Date s, Date d) throws ParseException {
  SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
  if (format.parse(format.format(s)).getTime() > format.parse(
    format.format(d)).getTime()) {
   return ">";
  } else if (format.parse(format.format(s)).getTime() == format.parse(
    format.format(d)).getTime()) {
   return "==";
  } else {
   return "<";
  }
 }

有发现问题的可以留言指正,初学见谅。。。

时间: 2024-11-15 15:10:30

java中对时间的操作(望批评指正...)的相关文章

java中关于时间日期操作的常用函数

Date类 在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理.这里简单介绍一下Date类的使用. 1.使用Date类代表当前系统时间 Date d = new Date(); System.out.println(d); 使用Date类的默认构造方法创建出的对象就代表当前时间,由于Date类覆盖了toString方法,所以可以直接输出Date类型的对象,显示的结果如下: Sun Ma

Java中的时间日期处理

程序就是输入——>处理——>输出.对数据的处理是程序员需要着重注意的地方,快速.高效的对数据进行处理时我们的追求.其中,时间日期的处理又尤为重要和平凡,此次,我将把Java中的时间日期处理方式进行简单的解析,为自己以后的学习做一个备忘,也为初学者做一个借鉴. 时间,英文Time:日期,英文Date:日历,英文Calendar.Java中注重语义化,也是用以上的名称对时间日期函数和相关类进行命名. 我们将以Java自带的时间日期类和其中的处理函数进行分析. 一.与时间日期有关的类. java.u

Java中的时间和日期(下)

转载请注明出处:http://blog.csdn.net/wl9739/article/details/51882913 在上篇文章Java中的时间和日期(上)里面,简单介绍了Java中的Date类,Calendar类以及用于格式化的SimpleDateFormater类.使用这些的时候我们会明显地感受到其中的不便之处,比如,Calendar类的月份是从0开始计数的:日期格式输出不够友好,很多情况下都需要使用SimpleDateFormater类来格式化:一些简单得日期计算也比较麻烦等等.所以就

线程基础:线程(3)——JAVA中的基本线程操作(中)

(接上文<线程基础:线程(2)--JAVA中的基本线程操作(上)>) 1-4.注意synchronized关键字的使用 在前面的文章中我们主要讲解的是线程中"对象锁"的工作原理和操作方式.在讲解synchronized关键字的时候,我们还提到了synchronized关键字可以标注的位置.大家经常看到相当部分的网贴,在它们的代码示例中将synchronized关键字加载到代码的方法体上,然后告诉读者:这个操作是线程安全的.代码可能如下: /** * 这个类的class对象进

java中各种时间格式的转化

http://www.chinaitpower.com/A/2005-01-14/104881.html 使用java.util.Calendar返回间隔天数   static int getDaysBetween (java.util.Calendar d1, java.util.Calendar d2) { if (d1.after(d2)) {  // swap dates so that d1 is start and d2 is end java.util.Calendar swap

1 Java中的时间类型

总结:sql中的时间转 util的时间直接赋值即可:反过来,必须先吧util下的时间转换成毫秒,再通过sql的构造器生成sql的时间格式. 1 Java中的时间类型 java.sql包下给出三个与数据库相关的日期时间类型,分别是: l Date:表示日期,只有年月日,没有时分秒.会丢失时间: l Time:表示时间,只有时分秒,没有年月日.会丢失日期: l Timestamp:表示时间戳,有年月日时分秒,以及毫秒. 这三个类都是java.util.Date的子类. 2 时间类型相互转换 把数据库

java中 mongodb的各种操作

一. 常用查询: 1. 查询一条数据:(多用于保存时判断db中是否已有当前数据,这里 is  精确匹配,模糊匹配 使用 regex...) public PageUrl getByUrl(String url) { return findOne(new Query(Criteria.where("url").is(url)),PageUrl.class); } 2. 查询多条数据:linkUrl.id 属于分级查询 public List<PageUrl> getPageU

SQL导入txt以及SQL中的时间格式操作

原文:SQL导入txt以及SQL中的时间格式操作 MySQL中导入txt的指令为: load data local infile "路径名称" into table "表名" 比如我文件的具体位置为"f:\\dataset\\beijing\\xx.txt",创建的表名为"person",则上述指令的具体表达为: load data local infile "f:\\dataset\\beijing\\xx.txt

线程基础:线程(2)——JAVA中的基本线程操作(上)

文章注明来源:http://blog.csdn.net/yinwenjie,主要供自己学习转载用 1.JAVA中线程的状态 1-1.#对象锁 在Java中每一个对象都有一把‘锁’,这个‘锁’可以是开放状态:也可以由某一个线程(或者多个线程)持有‘钥匙’:一旦在系统中某个对象的‘锁’存在至少一把‘钥匙’,那么任何线程操作这个对象,都必须验证是否有‘钥匙’,如果没有则会报IllegalMonitorStateException异常. 可是‘锁芯’(对象独占权)只有一个,那么可以打开这把锁的多个‘钥匙