`
baobeituping
  • 浏览: 1068371 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

java 获得各种时间

阅读更多

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.i18n.LocaleContextHolder;


public class DateUtil {

 private static Log log = LogFactory.getLog(DateUtil.class);

 private static String defaultDatePattern = null;

 private static String timePattern = "HH:mm";

 

 public static Date getSystemTime() {
  Calendar now = Calendar.getInstance();
  return now.getTime();
  
 }

 public static synchronized String getDatePattern() {
  Locale locale = LocaleContextHolder.getLocale();
  try {
   defaultDatePattern = ResourceBundle.getBundle("yyyy-MM-dd",
     locale).getString("date.format");
  } catch (MissingResourceException mse) {
   defaultDatePattern = "yyyy-MM-dd";
  }

  return defaultDatePattern;
 }


 public static final String getDate(Date aDate) {
  SimpleDateFormat df = null;
  String returnValue = "";

  if (aDate != null) {
   df = new SimpleDateFormat(getDatePattern());
   returnValue = df.format(aDate);
  }

  return (returnValue);
 }


 public static final Date convertStringToDate(String aMask, String strDate) {
  SimpleDateFormat df = null;
  Date date = null;
  df = new SimpleDateFormat(aMask);

  if (log.isDebugEnabled()) {
   log.debug("converting '" + strDate + "' to date with mask '"
     + aMask + "'");
  }

  try {
   date = df.parse(strDate);
  } catch (ParseException pe) {
   log.error("ParseException: " + pe);
  }

  return (date);
 }


 public static String getTimeNow(Date theTime) {
  return getDateTime(timePattern, theTime);
 }


 public static Calendar getToday() throws ParseException {
  Date today = new Date();
  SimpleDateFormat df = new SimpleDateFormat(getDatePattern());

  // This seems like quite a hack (date -> string -> date),
  // but it works ;-)
  String todayAsString = df.format(today);
  Calendar cal = new GregorianCalendar();
  cal.setTime(convertStringToDate(todayAsString));

  return cal;
 }

 
 public static Date getMonday(Date date) {
  Calendar c = Calendar.getInstance();
  c.setTime(date);
  if (c.get(Calendar.DAY_OF_WEEK) == 1) {
   date = DateUtil.addDays(date, -7);
   c.setTime(date);
  }

  c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
  String mondayString = DateUtil.format(c.getTime(), "yyyy-MM-dd");
  mondayString = mondayString + " 00:00:00";
  return convertStringToDate("yyyy-MM-dd HH:mm:ss", mondayString);
 }

 
 public static Date getFriday(Date date) {
  Calendar c = Calendar.getInstance();
  c.setTime(date);
  c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
  String fridayString = format(c.getTime(), "yyyy-MM-dd");
  fridayString = fridayString + " 23:59:59";
  return convertStringToDate("yyyy-MM-dd HH:mm:ss", fridayString);

 }


 public static final String getDateTime(String aMask, Date aDate) {
  SimpleDateFormat df = null;
  String returnValue = "";

  if (aDate == null) {
   log.error("aDate is null!");
  } else {
   df = new SimpleDateFormat(aMask);
   returnValue = df.format(aDate);
  }

  return (returnValue);
 }


 public static final String convertDateToString(Date aDate) {
  return getDateTime(getDatePattern(), aDate);
 }

 public static Date convertStringToDate(String strDate) {
  Date aDate = null;

  try {
   if (log.isDebugEnabled()) {
    log.debug("converting date with pattern: " + getDatePattern());
   }

   aDate = convertStringToDate(getDatePattern(), strDate);
  } catch (Exception pe) {
   log.error("Could not convert '" + strDate
     + "' to a date, throwing exception");

  }

  return aDate;
 }

 public static int dayDiff(Date first, Date second) {

  long msPerDay = 1000 * 60 * 60 * 24;
  long diff = (first.getTime() / msPerDay)
    - (second.getTime() / msPerDay);
  
  Long convertLong = new Long(diff);
  return convertLong.intValue();
 }
 
 public static long dayDiffMilSecond(Date first, Date second) {

  long diff = first.getTime()-second.getTime();
  Long convertLong = new Long(diff);
  return convertLong;
 }

 
 public static String format(Date date, String pattern) {
  if(date==null) return "";
  SimpleDateFormat formatter = new SimpleDateFormat(pattern);
  return formatter.format(date);
 }

 static public final Date addDays(Date target, int days) {
  long msPerDay = 1000 * 60 * 60 * 24; // 一天的毫秒数
  long msTarget = target.getTime(); // 返回从一个特定的日期(1970。。)到现在经过的毫秒数。
  long msSum = msTarget + (msPerDay * days);
  Date result = new Date();
  result.setTime(msSum); // 根据毫秒设置日期
  return result;
 }
 
 public static Date beforeDays(Date target,int days)
 {
  long msPerDay = 1000 * 60 * 60 * 24; // 一天的毫秒数
  long msTarget = target.getTime(); // 返回从一个特定的日期(1970。。)到现在经过的毫秒数。
  long msSum = msTarget - (msPerDay * days);
  Date result = new Date();
  result.setTime(msSum); // 根据毫秒设置日期
  return result;
 }
   
 public static Date formatString(String time, String format){
  try{
   SimpleDateFormat formater = new SimpleDateFormat(format);
   return formater.parse(time);
  }catch(Exception e){
   return null;
  }
 }

 
 public static Date getFirstDateOfMonth(Date date){
  Calendar calendar = Calendar.getInstance();
  calendar.setTime(date);
  calendar.set(Calendar.DAY_OF_MONTH, 1);
  calendar.set(Calendar.HOUR_OF_DAY, 0);
  calendar.set(Calendar.MINUTE, 0);
  calendar.set(Calendar.SECOND, 0);
  return calendar.getTime();
 }
 
 
 public static Date getLastlyDateOfMonth(Date date){
  Calendar calendar = Calendar.getInstance();
  calendar.setTime(date);
  int month = calendar.get(Calendar.MONTH);
  calendar.set(Calendar.MONTH, month+1);
  calendar.set(Calendar.DAY_OF_MONTH, 1);
  calendar.set(Calendar.HOUR_OF_DAY, 23);
  calendar.set(Calendar.MINUTE, 59);
  calendar.set(Calendar.SECOND, 59);
  calendar.add(Calendar.DAY_OF_MONTH, -1);
  return calendar.getTime();
 }
 
 
 public static Date getFirstDateOfNextMonth(Date date){
  Calendar calendar = Calendar.getInstance();
  calendar.setTime(date);
  int month = calendar.get(Calendar.MONTH);
  calendar.set(Calendar.MONTH, month+1);
  calendar.set(Calendar.DAY_OF_MONTH, 1);
  calendar.set(Calendar.HOUR_OF_DAY, 0);
  calendar.set(Calendar.MINUTE, 0);
  calendar.set(Calendar.SECOND, 0);
  return calendar.getTime();
  
 }
 
 public static String getCurrentDayPath()
 {
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
  Date now = new Date();
  String filePath = sdf.format(now) + "/";
  sdf = new SimpleDateFormat("MM");
  filePath += sdf.format(now) + "/";
  sdf = new SimpleDateFormat("dd");
  filePath += sdf.format(now) + "/";
  
  return filePath;
 }

}

分享到:
评论

相关推荐

    java获得各种时间

    根据给定文件的信息,我们可以深入探讨Java中获取各种时间戳、日期和时间间隔的方法。Java提供了多种类库来处理日期和时间,其中最主要的是`java.util.Date`、`java.util.Calendar`以及`java.text.SimpleDateFormat`...

    Java获得系统时间

    ### Java获取系统时间详解 在Java编程语言中,获取系统时间是一项非常基本且重要的功能,尤其是在需要记录事件发生的时间、实现定时任务或是进行日期时间相关的计算时。本文将基于提供的代码示例,深入探讨如何在...

    Java获得当前时间

    Java获得当前时间,让你熟悉Date的调用和线程方面的知识

    java 获得时间方法

    本文将详细介绍如何利用`Calendar`类来获取各种时间数据。 #### 导入必要的包 首先,我们需要导入`java.util.Calendar`包,这是操作日期和时间的基础。 ```java import java.util.Calendar; ``` #### 创建...

    Java获取各种常用时间方法

    根据给定文件的信息,我们可以总结出以下关于Java中获取各种常用时间的方法的知识点: ### Java获取各种常用时间方法 在Java编程中,处理日期和时间是常见需求之一。本篇文章将详细介绍如何使用Java来获取一些常用...

    Java获得文件创建时间

    在Java编程语言中,获取文件的创建时间并不是像在其他一些语言(如C++)中那样直接和简单。Java的标准库API默认只提供了获取文件最后修改时间的能力,但没有直接提供获取创建时间的方法。不过,这并不意味着在Java中...

    java如何获取时间

    ### Java中获取时间的方法 在Java中,时间的获取与处理是常见的需求之一,尤其是在开发涉及日期、时间计算的应用程序时。本文将详细介绍如何在Java中获取系统当前时间,并通过不同的类来展示获取时间的不同方式。 ...

    JAVA中获得本地系统时间的方法

    ### JAVA中获得本地系统时间的方法 在Java编程中,获取本地系统的当前时间是常见的需求之一。这不仅可以用于记录日志、实现定时任务等功能,还能帮助开发者进行时间相关的数据处理。本文将详细介绍两种常用方法来...

    操作系统-java版本时间片

    这样可以确保多个任务在短时间内都能获得CPU的执行,从而实现并发执行,提高系统的响应速度和用户感知的系统性能。 在Java中,虽然操作系统级别的时间片调度是由底层操作系统实现的,但Java虚拟机(JVM)对此有所...

    Java语句获取系统时间与实际时间相差8小时的解决办法.doc

    最近有遇到java的时间不对的事件,现象:通过java语句获得系统时间,取得的时间总是比系统时间少8个小时,获得的总是格林尼治时间(0时区的时间),检查系统时间确实是正确的,时区为GMT 8:00北京……等;...

    Java获得当前时间前指定几个小时具体时间的方法示例

    "Java获得当前时间前指定几个小时具体时间的方法示例" 本文主要介绍了Java获得当前时间前指定几个小时具体时间的方法,涉及java使用Calendar针对日期时间的相关运算与转换操作技巧。下面是详细的知识点总结: 一、...

    基于JAVA的周期时间处理工具包

    本工具包主要是基于JAVA的底层时间类的处理周期时间的工具包,主要用于处理并得到周期性提醒的时间,比如说您想要在每天8:10、每月1号8:20、每周三8:30、每10分钟、每3小时、每季度第一个月1号8:10等等处理一项...

    java中输出当前系统时间

    ### Java中输出当前系统时间 在Java编程语言中,输出当前系统的日期与时间是一个非常常见的需求,尤其是在开发涉及时间敏感的应用程序时。本篇文章将详细介绍如何利用Java中的`Calendar`类及其子类`...

    Java时间控件精确到秒

    在Java编程中,时间控制是常见的需求,尤其是在开发用户界面或者进行定时任务处理时。Java标准库提供了多种方式来处理时间,确保精度到秒。在本项目中,开发者基于别人的开源项目进行了修改,以实现更精确的时间控制...

Global site tag (gtag.js) - Google Analytics