`
javasee
  • 浏览: 961259 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

java开发中时间按工具类

阅读更多

import java.io.*;
import java.text.*;
import java.util.*;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateUtils {
  public DateUtils() {
  }

  public final static Calendar myc = Calendar.getInstance();

  public static final int SECOND = 1000;
  public static final int MINUTE = SECOND * 60;
  public static final int HOUR = MINUTE * 60;
  public static final int DAY = HOUR * 24;
  public static final int WEEK = DAY * 7;
  public static final int YEAR = DAY * 365; // or 366 ???

  public static final long GMT_VIETNAM_TIME_OFFSET = HOUR * 8;

  private static long SERVER_TIME_OFFSET = HOUR * 0;

  private static DateFormat ddMMyyyyFormat = new SimpleDateFormat("dd/MM/yyyy");
  private static DateFormat yyyymmddhhmmssFormat = new SimpleDateFormat(
      "yyyy年MM月dd日 kk:mm:ss");
  private static DateFormat mmddhhmmFormat = new SimpleDateFormat(
      "MM月dd日 kk:mm");
  private static DateFormat yyyymmddhhmmFormat = new SimpleDateFormat(
      "yyyy年MM月dd日 kk:mm");
  private static DateFormat dateFormat = SimpleDateFormat.getDateInstance(
      SimpleDateFormat.DEFAULT);
  private static DateFormat datetimeFormat = SimpleDateFormat.
      getDateTimeInstance(SimpleDateFormat.DEFAULT, SimpleDateFormat.DEFAULT);

  /**
   * @return 返回当前时间,返回格式:2003-4-25 14:50:7
   */
  public static String getTime() {
    return getTime("yyyy-MM-dd HH:mm:ss");
  }

  public static Date getDate(String parrten) {
    if (!StringUtils.hasText(parrten)) {
      parrten = "yyyyMMddHH";
    }
    String starttime = DateUtils.getTime(parrten);
    return DateUtils.getStrToDate(starttime, parrten);
  }
 
  public static Date getDate(){
   return getDate("yyyy-MM-dd HH:mm:ss");
  }

  /**
   * 获得当前时间
   * @param parrten 输出的时间格式
   * @return 返回时间
   */
  public static String getTime(String parrten) {
    String timestr;
    if (parrten == null || parrten.equals("")) {
      parrten = "yyyyMMddHHmmss";
    }
    java.text.SimpleDateFormat sdf = new SimpleDateFormat(parrten);
    java.util.Date cday = new Date();
    timestr = sdf.format(cday);
    return timestr;
  }

  /**
   * 时间格式转换
   * @param cday
   * @param parrten
   * @return
   */
  public static String getTime(Date cday, String parrten) {
    String timestr;
    if (parrten == null || parrten.equals("")) {
      parrten = "yyyyMMddHHmmss";
    }
    java.text.SimpleDateFormat sdf = new SimpleDateFormat(parrten);
    timestr = sdf.format(cday);
    return timestr;
  }

  /**
   * 得到昨天的时间
   * @return
   */
  public static String getYestday() {
    String timestr;
    java.util.Calendar cc = myc;
    cc.roll(cc.DAY_OF_YEAR, -1);
    java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    timestr = sdf.format(cc.getTime());
    return timestr;
  }

  //将一个时间字符串转换为date型
  public static Date getStrToDate(String time, String parrten) {
    SimpleDateFormat formatter = new SimpleDateFormat(parrten);
    ParsePosition pos = new ParsePosition(0);
    Date dt1 = formatter.parse(time, pos);
    return dt1;
  }

  /**
   * 将时间转换为xxxx年xx月xx日格式
   * @param t1 原时间
   * @param parrten 原时间格式
   * @return
   */
  public static String getTime(String t1, String parrten) {
    SimpleDateFormat formatter = new SimpleDateFormat(parrten);
    SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy年MM月dd日");
    ParsePosition pos = new ParsePosition(0);
    Date dt1 = formatter.parse(t1, pos);
    return formatter2.format(dt1);
  }

  /**
   * 将时间转换为parrten2格式
   * @param t1
   * @param parrten
   * @param parrten2
   * @return
   */
  public static String getTime(String t1, String parrten, String parrten2) {
    SimpleDateFormat formatter = new SimpleDateFormat(parrten);
    SimpleDateFormat formatter2 = new SimpleDateFormat(parrten2);
    ParsePosition pos = new ParsePosition(0);
    Date dt1 = formatter.parse(t1, pos);
    return formatter2.format(dt1);
  }

  /**
   * 比较两个字符串时间的大小
   * @param t1 时间1
   * @param t2 时间2
   * @param parrten 时间格式 :yyyy-MM-dd
   * @return 返回long =0相等,>0 t1>t2,<0 t1<t2
   */
  public static long compareStringTime(String t1, String t2, String parrten) {
    SimpleDateFormat formatter = new SimpleDateFormat(parrten);
    ParsePosition pos = new ParsePosition(0);
    ParsePosition pos1 = new ParsePosition(0);
    Date dt1 = formatter.parse(t1, pos);
    Date dt2 = formatter.parse(t2, pos1);
    long l = dt1.getTime() - dt2.getTime();
    return l;
  }

  //相差的天数
  public static int compareTime(String time1, String time2) {
    long l = compareStringTime(time1, time2, "yyyy-MM-dd");
    long days = l / 1000 / 60 / 60 / 24;
    return (int) days;
  }

  public static synchronized String getDateDDMMYYYY(Date date) {
    return ddMMyyyyFormat.format(date);
  }

  public static synchronized String getDateindex(Date date) {
    return yyyymmddhhmmssFormat.format(date);
  }

  public static synchronized String getDateSearch(Date date) {
    return mmddhhmmFormat.format(date);
  }

  public static synchronized String getDateNoSencond(Date date) {
    return yyyymmddhhmmFormat.format(date);
  }

  public static synchronized String formatDate(Date date) {
    return dateFormat.format(date);
  }

  public static synchronized String formatDateTime(Date date) {
    return datetimeFormat.format(date);
  }

  public static Timestamp getCurrentGMTTimestamp() {
    return new Timestamp(System.currentTimeMillis() - SERVER_TIME_OFFSET);
  }

  public static void updateCurrentGMTTimestamp(Timestamp timeToUpdate) {
    timeToUpdate.setTime(System.currentTimeMillis() - SERVER_TIME_OFFSET);
  }

  public static Date getVietnamDateFromGMTDate(Date date) {
    return new Date(date.getTime() + GMT_VIETNAM_TIME_OFFSET);
  }

  public static Date convertGMTDate(Date gmtDate, int hourOffset) {
    return new Date(gmtDate.getTime() + hourOffset * HOUR);
  }

  public static Timestamp convertGMTTimestamp(Timestamp gmtTimestamp,
                                              int hourOffset) {
    return new Timestamp(gmtTimestamp.getTime() + hourOffset * HOUR);
  }

  public static Timestamp getCurrentGMTTimestampExpiredYear(int offsetYear) {
    //return new Timestamp(System.currentTimeMillis() + offsetYear*(365*24*60*60*1000));
    Calendar now = Calendar.getInstance();
    now.add(Calendar.YEAR, offsetYear);
    return new Timestamp(now.getTime().getTime());
  }

  public static Timestamp getCurrentGMTTimestampExpiredMonth(int offsetMonth) {
    Calendar now = Calendar.getInstance();
    now.add(Calendar.MONTH, offsetMonth);
    return new Timestamp(now.getTime().getTime());
  }

  /**
   * 在当前的日期前加上N天
   * @param day int 天数
   * @return Date
   */
  public static Date addDay(int day) {
    java.util.Date date1 = new Date();
    long Time = (date1.getTime() / 1000) + 60 * 60 * 24 * day;
    date1.setTime(Time * 1000);
    return date1;
  }

  /**
   * 计算两个时间之间的天数
   * @param d1 Date
   * @param d2 Date
   * @return long
   */
  public static long getDaysFromTwoDate(Date d1, Date d2) {
    long day = (d1.getTime() - d2.getTime()) / (24 * 60 * 60 * 1000);
    return day;
  }

  public static Date getLastSunday() {
    String sdate = getTime("yyyy-MM-dd");
    int syear = Integer.parseInt(sdate.substring(0, 4));
    int smonth = Integer.parseInt(sdate.substring(5, 7));
    int sday = Integer.parseInt(sdate.substring(8, 10));
    GregorianCalendar cal = new GregorianCalendar();
    cal.set(syear, smonth, sday);
    int week = cal.get(java.util.Calendar.DAY_OF_WEEK); //1为星期天
    return addDay( - (week + 6));
  }

  public static Date getLastSaturday() {
    String sdate = getTime("yyyy-MM-dd");
    int syear = Integer.parseInt(sdate.substring(0, 4));
    int smonth = Integer.parseInt(sdate.substring(5, 7));
    int sday = Integer.parseInt(sdate.substring(8, 10));
    GregorianCalendar cal = new GregorianCalendar();
    cal.set(syear, smonth, sday);
    int week = cal.get(java.util.Calendar.DAY_OF_WEEK); //1为星期天
    return addDay( - (week));
  }

  public static String getlastMonth() {
    String sdate = getTime("yyyy-MM-dd");
    int syear = Integer.parseInt(sdate.substring(0, 4));
    int smonth = Integer.parseInt(sdate.substring(5, 7));
    smonth = smonth - 1;
    if (smonth == 0) {
      smonth = 12;
      syear = syear - 1;
    }
    return syear + "-" + smonth + "-01";
  }

  public static String getThisMonthStart() {
    String sdate = getTime("yyyy-MM-dd");
    int syear = Integer.parseInt(sdate.substring(0, 4));
    int smonth = Integer.parseInt(sdate.substring(5, 7));
    return syear + "-" + smonth + "-01";
  }

  /**
   * 当日属于一年的第几周
   * @return int
   */
  public static int getWeekOfYeah() {
    Calendar calendar = Calendar.getInstance();
   
    int week = calendar.get(Calendar.DAY_OF_WEEK) - 1;
    return week;
  }

  /**
   * 得到一个星期的开始
   * @return Date
   */
  public static Date weekStart() {
    Date date = new Date();
    Calendar calendar = Calendar.getInstance();
    int week = calendar.get(Calendar.DAY_OF_WEEK) - 1;
    Date dateBegin = new Date();
    dateBegin.setTime(date.getTime() - (long) (week) * 24 * 60 * 60 * 1000);
    return dateBegin;
  }

  /**
   * 得到一个星期的结束
   * @return Date
   */
  public static Date weekEnd() {
    Date date = new Date();
    Calendar calendar = Calendar.getInstance();
    int week = calendar.get(Calendar.DAY_OF_WEEK) - 1;
    Date dateEnd = new Date();
    dateEnd.setTime(date.getTime() + (long) (6 - week) * 24 * 60 * 60 * 1000);
    return dateEnd;
  }

  /**
   * 得到某年第n个星期的星期天
   * @param year int
   * @param week int
   * @return Date
   */
  public static Date getDateByYearAndWeekstart(int year, int week) { //星期日。第一天
    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.YEAR, year);
    calendar.set(Calendar.WEEK_OF_YEAR, week);
    calendar.set(Calendar.DAY_OF_WEEK, 1);
    return calendar.getTime();
  }

  public static String getQuarter(String month) {
      if (!StringUtils.hasText(month) && !StringUtils.isNumeric(month)) {
          month = "1";
      }
      int m = Integer.parseInt(month);
      if (m <= 12 && m >= 10) {
          return "4";
      } else if (m <= 9 && m >= 7) {
          return "3";
      } else if (m <= 6 && m >= 4) {
          return "2";
      } else {
          return "1";
      }
  }

  public static String getQuarter(){
      String month=getTime("M");
      return getQuarter(month);
  }


  public static String getQuarterCn(){
      String month=getTime("M");
      return getQuarterCn(month);
  }

  public static String getQuarterCn(String month) {
      if (!StringUtils.hasText(month) && !StringUtils.isNumeric(month)) {
          month = "1";
      }
      int m = Integer.parseInt(month);
      if (m <= 12 && m >= 10) {
          return "四";
      } else if (m <= 9 && m >= 7) {
          return "三";
      } else if (m <= 6 && m >= 4) {
          return "二";
      } else {
          return "一";
      }
  }


  /**
   * 得到某年第n个星期的星期六
   * @param year int
   * @param week int
   * @return Date
   */
  public static Date getDateByYearAndWeekend(int year, int week) { //星期六。最后一天
    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.YEAR, year);
    calendar.set(Calendar.WEEK_OF_YEAR, week);
    calendar.set(Calendar.DAY_OF_WEEK, 0);
    return calendar.getTime();
  }

  public static void main(String args[]) {
   String stime="2007-08-24";
   String etime="2007-08-28";
   //System.out.println(DateUtils.compareTime(etime,stime));
   //System.out.println(DateUtils.getTime("M"));
   Float a=Float.valueOf("1");
   Float b=Float.valueOf("1.9");
  }

}

0
2
分享到:
评论

相关推荐

    JAVA开发常用工具类

    下面我们将深入探讨一些Java开发中常用的工具类,并了解它们在实际项目中的应用。 1. **`java.util.ArrayList` 和 `java.util.LinkedList`**: 这两个类都是`java.util.List`接口的实现,提供了动态数组和链表数据...

    java开发常用工具类

    本文将详细解析"java开发常用工具类"中的关键知识点,包括日历、时间处理、Excel导出、网络请求、流操作、数据处理、数值计算以及XML和Web工具类。 1. **日历和时间处理**: Java中`java.util.Calendar`和`java....

    java常用开发工具类大全

    下面我们将深入探讨几个常见的Java工具类库以及它们在实际开发中的应用。 1. **Java标准库中的工具类** - `java.util`: 这个包中包含了大量工具类,如`ArrayList`, `HashMap`, `LinkedList`等集合框架类,以及`...

    java开发常用工具类大全,程序员必备工具

    Java开发是软件工程中的核心部分,对于程序员来说,掌握一套高效、全面的工具类库能够极大地提高工作效率。本文将详细解析“java开发常用工具类大全”中涉及的关键知识点,包括但不限于输入字符校验、数据转换、网络...

    Java实体类字段生成工具类-将数据库表列字段转为Java实体类驼峰字段

    1、在Java开发中,常常需要将数据库表列字段换成Java实体类字段。但是手动实现这个转换过程比较慢,且容易出错,影响开发效率。为了解决这个问题,开发了这个Java实体类字段生成工具类。 2、该工具类可以将数据库表...

    【强2】30个java工具类

    使用java工具类可有效的提高开发效率! 没有CSDN积分的朋友到这里源头下载:http://www.javacs.cn/bbs/thread-382-1-1.html 感谢支持 [工具类] CookieCounter .java.txt [工具类] 验证码img .jsp.txt [工具类] Java中...

    java高效开发26个工具类

    3. **日期时间处理**:除了Java 8的java.time包,还可以自定义工具类处理日期和时间,如格式化、比较、计算间隔等。 4. **文件操作**:提供文件读写、复制、移动、删除等功能,简化I/O操作。 5. **网络请求**:...

    java工具类集合

    Java工具类集合是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,工具类通常被组织在各种包下,如`java.util`、`java.lang`、`java.io`等。下面将详细介绍...

    一些java常用的工具类

    在Java编程中,工具类(Utility Classes)是非常重要的组成部分,它们提供了许多通用的功能,以简化开发人员的工作。以下是对"一些java常用的工具类"的详细说明。 首先,工具类通常包含静态方法,这些方法不依赖于...

    java短信服务工具类

    在工具类中,应当适当地捕获和处理这些异常,以确保程序的健壮性。 5. **线程安全**: 如果工具类可能被多个线程同时访问,那么需要确保其线程安全,避免并发问题。可以使用同步块、并发集合或者设计为单例模式。 ...

    JAVA微信开发封装好的工具类及JAR包

    在Java微信开发中,工具类和JAR包的使用是至关重要的,它们为开发者提供了便捷的接口和功能,简化了微信API的调用过程。这个压缩包中的"JAVA微信支付工具类"很可能是包含了处理微信支付相关逻辑的类库,方便开发者...

    java开发常用工具类.zip

    在Java开发过程中,工具类是不可或缺的一部分,它们提供了一种高效、便捷的方式来处理常见的编程任务。"java开发常用工具类.zip" 包含了一系列这样的工具类,这些类可以帮助开发者节省时间,提高代码的可读性和可...

    javaUtils java开发中使用的工具类

    在Java开发过程中,工具类(Utils)扮演着重要的角色,它们提供了一系列常用的功能,使得开发者可以更高效地编写代码。"javaUtils java开发中使用的工具类"这个主题中,我们将会探讨以下几个方面: 1. **Nacos...

    java开发,30个常用工具类总结,全部来自项目实践中用到的工具类

    在Java开发中,工具类是程序员经常会用到的代码模块,它们封装了各种常见的操作,提高了代码的可重用性和可维护性。以下是对标题和描述中提到的几个常用工具类的详细说明: 1. **DateUtils**: `java.util.Date` 和 ...

    java开发工具类(14个)

    在Java开发过程中,工具类(Util Classes)是程序员经常使用的一种设计模式,它们提供了一些静态方法,方便在多个类或模块之间复用。本压缩包包含14个针对Java和Android开发的实用工具类,涵盖了图片上传、HTTP协议...

    java工具类 java开发助手 java util

    Java工具类(Java Util)是Java开发中不可或缺的一部分,它为开发者提供了大量便捷的功能,极大地提高了开发效率。在Java标准库中,`java.util`包是核心工具类库,包含了各种容器类、集合框架、日期时间处理、随机数...

    Ut.rar_java 开发ut包_javaut demo_java工具_java工具类_基础工具

    在Java开发过程中,工具类是不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理常见的编程任务。"Ut.rar" 是一个包含Java基础工具类的压缩包,特别针对单元测试(UT,Unit Test)和一些常见的开发...

    JAVA对象以及数据的工具类

    在Java编程语言中,工具类(Utils)是包含各种实用方法的类,这些方法通常用于执行常见的任务,如类型转换、字符串操作、集合处理等。它们使得代码更加简洁且易于维护,因为它们提供了通用功能的封装,避免了重复...

    Java日期工具类,Java时间工具类,Java时间格式化

    本篇将围绕Java中的日期工具类和时间工具类展开讨论,同时会涉及到日期时间的格式化。 首先,Java 8之前,我们主要依赖`java.util.Date`和`java.text.SimpleDateFormat`这两个类来处理日期和时间。`Date`类用于表示...

    java操作时间工具类

    Java操作时间工具类是开发者日常工作中经常会用到的模块,特别是在处理日期和时间相关的业务逻辑时。本工具类主要是为了方便地对日期和时间进行格式化、比较、计算等操作,提高开发效率。下面我们将详细探讨Java中...

Global site tag (gtag.js) - Google Analytics