`
RmagSky586
  • 浏览: 3234 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

JAVA / JS 中对于日期、时间的操作

阅读更多

1.常用型日期转换类:

 

import java.sql.Date;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

 

public class DateUtil {

 /**
  * 得到系统现在的时间
  * 
  * @param formatString
  *            返回的时间字符串形式 默认为: yyyy-MM-dd HH:mm:ss
  * @return String
  */
 public static String getNowTime(String formatString) {

  if (StringUtil.isEmptyString(formatString))
   formatString = "yyyy-MM-dd HH:mm:ss";
  SimpleDateFormat sdf;

  try {

   Timestamp nowtime = new Timestamp(System.currentTimeMillis());
   sdf = new SimpleDateFormat(formatString);
   return sdf.format(nowtime);
  } catch (Exception e) {

   e.printStackTrace(System.err);
  }
  return "";
 }

 /**
  * 把时间型Object对象转化成秒数
  * 
  * @return long
  * @param strDateTime
  *            需要转化的时间型字符串 如:2006-10-01 00:00:00
  * @param strFormat
  *            需要转化的时间型字符串的格式 如:yyyy-MM-dd HH:mm:ss
  * 
  */
 public static long objectToSeconds(Object strDateTime, String strFormat) {

  if (StringUtil.isEmptyString(strDateTime))
   strDateTime = getNowTime(null);
  if (StringUtil.isEmptyString(strFormat))
   strFormat = "yyyy-MM-dd HH:mm:ss";

  try {

   SimpleDateFormat format = new SimpleDateFormat(strFormat);
   java.util.Date date = format.parse(strDateTime.toString());
   long seconds = (date.getTime() / 1000);
   return seconds;
  } catch (ParseException e) {

  }
  return 0;
 }

 /**
  * 把秒数转化成时间型字符串
  * 
  * @param seconds
  *            需要转化的时间总秒数
  * @param strFormat
  *            返回的时间字符串形式 如:yyyy-MM-dd HH:mm:ss
  * @return String
  */
 public static String formatSeconds(long seconds, String strFormat) {

  if (seconds <= 0)
   return "";
  if (StringUtil.isEmptyString(strFormat))
   strFormat = "yyyy-MM-dd HH:mm:ss";

  try {

   SimpleDateFormat format = new SimpleDateFormat(strFormat);
   Date date = new Date(System.currentTimeMillis());
   date.setTime(seconds * 1000);
   return format.format(date);

  } catch (Exception e) {

   ;
  }
  return "";
 }

 /**
  * 把时间类型的Object对象转化为Timestamp
  * 
  * @param strDateTime
  *            Object
  * @param strFormat
  *            转化的字符串(strDateTime)形式 如:yyyy-MM-dd HH:mm:ss
  * @return Timestamp
  */
 public static Timestamp objectToTimestamp(Object strDateTime,
   String strFormat) {

  if (StringUtil.isEmptyString(strDateTime))
   strDateTime = getNowTime(null);
  if (StringUtil.isEmptyString(strFormat))
   strFormat = "yyyy-MM-dd HH:mm:ss";

  try {

   long Seconds = objectToSeconds(strDateTime, strFormat);
   Timestamp time = new Timestamp(Seconds * 1000);
   return time;
  } catch (Exception e) {

   ;
  }
  return null;
 }

 public static Timestamp objectToTimestamp(Object strDateTime) {

  if (StringUtil.isEmptyString(strDateTime))
   return null;

  try {

   return Timestamp.valueOf(strDateTime.toString());
  } catch (Exception e) {

   ;
  }
  return null;
 }

 /**
  * 把时间类型的Object对象转化为字符串
  * 
  * @param timestamp
  *            Object
  * @param strFormat
  *            转化后的字符串形式 如:yyyy-MM-dd HH:mm:ss
  * @return String
  */
 public static String formatObject(Object timestamp, String strFormat) {

  if (StringUtil.isEmptyString(timestamp))
   return "";
  if (StringUtil.isEmptyString(strFormat))
   strFormat = "yyyy-MM-dd HH:mm:ss";
  SimpleDateFormat sdf;
  try {

   sdf = new SimpleDateFormat(strFormat);
   return sdf.format(timestamp);
  } catch (Exception e) {
   ;
  }

  return "";
 }

 /**
  * 把时间型字符串转化成Date
  * 
  * @return Date java.util.Date
  * @param strDateTime
  *            需要转化的时间型字符串 如:2006-10-01 00:00:00
  * 
  */
 public static java.util.Date stringToDate(Object objDateTime) {

  java.util.Date date = null;
  if (StringUtil.isEmptyString(objDateTime))
   return date;

  try {

   SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
   date = format.parse(objDateTime.toString());

   String tmpDate = format.format(date);
   return Date.valueOf(tmpDate);
  } catch (Exception e) {

   ;
  }
  return date;
 }

 /**
  * 取得当天日期 yyyy-MM-dd
  * 
  * @return Date java.util.Date
  * @param
  * 
  */
 public static String currentDay() {
  try {

   // 获取系统当前时间
   Calendar rightNow = Calendar.getInstance();
   SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
   return fmt.format(rightNow.getTime());
  } catch (Exception e) {
   ;
   return null;
  }
 }
   
 /**
  * 格式化当前日期
  * @param pattern
  * @return
  */
 public static java.util.Date currentDay(String pattern) {
  java.util.Date date = new java.util.Date();
  if (StringUtil.isEmptyString(pattern))
   pattern = "yyyy-MM-dd HH:mm:ss";
  SimpleDateFormat fmt = new SimpleDateFormat(pattern);
  String tmpDate = fmt.format(date);
  return Date.valueOf(tmpDate);

 }

 /**
  * 取得前天日期 yyyy-MM-dd
  * 
  * @return
  */
 public static String yesterday(String pattern) {
  try {
   java.util.Date date = null;
   if (StringUtil.isEmptyString(pattern))
    pattern = "yyyy-MM-dd HH:mm:ss";
   // 获取前天的现在时间
   Calendar c4 = Calendar.getInstance();
   c4.add(Calendar.DATE, -1);
   date = c4.getTime();
   java.text.SimpleDateFormat sf = new SimpleDateFormat(pattern);
   String str = sf.format(date);
   return str;
  } catch (Exception e) {
   return "";
  }
 }

 /**
  * 取得当月第一天, yyyy-MM-dd
  * 
  * @return Date java.util.Date
  * @param
  * 
  */
 public static String firstDayofMonth() {
  try {

   // 获取系统当前时间
   Calendar rightNow = Calendar.getInstance();
   SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");

   // 页面初始化的时候,设置开始时间为当月第一天,设置结束时间为当天
   rightNow.set(Calendar.DAY_OF_MONTH, 1);// 设置为1号,当前日期既为本月第一天
   return fmt.format(rightNow.getTime());

  } catch (Exception e) {
   ;
   return null;
  }
 }

 /**
  * 把秒数转化成时间型HH:mm:ss
  * 
  * @param seconds
  *            需要转化的时间总秒数
  * @return String
  */
 public static String formatSecondstoHour(long seconds) {

  if (seconds <= 0)
   return "00:00:00";

  try {
   long h = seconds / 3600;
   long m = (seconds - h * 3600) / 60;
   long s = (seconds - h * 3600) % 60;

   return h + ":" + m + ":" + s;

  } catch (Exception e) {

   ;
   return "00:00:00";
  }

 }
}

 

 

 

2.日期操作

 a. JS 中转化将日期\时间转换成秒:

     // 将时间转化为秒

    <script type="text/javascript" language="javascript">
      <!--
     
       function timeFormat(dataTime){
          var timeStr = new Array(); 
          timeStr = dataTime.split(/[-\s:]/); 
          var timeStr =(new Date(timeStr[0],timeStr[1]-1,timeStr[2],0,0,0)).valueOf();
          return timeStr;
       }

     //-->
   </script>

 

b. java中的时间推算

// 上周六的时间
Calendar c2 = Calendar.getInstance();
c2.add(Calendar.DATE, 0 - c2.get(Calendar.DAY_OF_WEEK));
String date2 = DateUtil.formatObject(c2.getTime(), "yyyy-MM-dd");

// N周前的时间
Calendar c1 = Calendar.getInstance();
c1.add(Calendar.DATE, 0 - (searchPeriod * 7
+ c1.get(Calendar.DAY_OF_WEEK) - 1));
String date1 = DateUtil.formatObject(c1.getTime(), "yyyy-MM-dd");

// 上月底时间
Calendar c1 = Calendar.getInstance();
c1.add(Calendar.DATE, 0 - c1.get(Calendar.DAY_OF_MONTH));
Date date = new Date(c1.getTimeInMillis());
String date1 = DateUtil.formatObject(date, "yyyy-MM-dd");

// 推算到前N年的时间
date.setYear(date.getYear()-searchPeriod);
String date2 = DateUtil.formatObject(date, "yyyy-MM-dd");

 

 

分享到:
评论

相关推荐

    java源码包---java 源码 大量 实例

    显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器  Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:  可...

    JAVA上百实例源码以及开源项目源代码

    显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器  Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:  可...

    JAVA上百实例源码以及开源项目

    显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器  Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:  可...

    java源码包2

    显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器  Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法: ...

    java源码包4

    显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器  Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法: ...

    java源码包3

    显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器  Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法: ...

    java开源包11

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    java开源包6

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    写给大忙人看的Java SE 8中文(美)霍斯曼,张若飞

    第5章详细介绍了Java新增的日期/时间API;第6章介绍了原子计数器、并发哈希映射、并行数组操作等特性中的改进;第7章介绍了如何在Java虚拟机上执行JavaScript,以及如何与Java代码进行交互操作;第8章描述了Java 8中...

    java开源包9

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    java开源包4

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    java开源包101

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    java开源包5

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    java开源包8

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    java开源包10

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    java开源包3

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    java开源包1

    利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于【自动提示】的需要(如:Google搜索), 而开发的架构无关的公共控件, 以满足该类...

    Date时间操作工具类

    Date时间操作工具类 js: 1.一个日期时间加上分钟数,得到一个新的日期时间 2.判断当前时间是否在时间段之内 3.根据默认的格式格式化时间 4.根据指定的格式格式化时间 5.改变月份 6.改变天数 7.计算天数间隔 8.Date转...

    写给大忙人看的Java SE 8

    第5章详细介绍了Java新增的日期/时间API;第6章介绍了原子计数器、并发哈希映射、并行数组操作等特性中的改进;第7章介绍了如何在Java虚拟机上执行JavaScript,以及如何与Java代码进行交互操作;第8章描述了Java 8中...

Global site tag (gtag.js) - Google Analytics