1. 获取当前系统时间和日期并格式化输出

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

public class NowString {
public static void main(String[] args) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
System.out.println(df.format(new Date()));// new Date()为获取当前系统时间
}
}

2. 在数据库里的日期只以年-月-日的方式输出,可以用下面两种方法:

1、用convert()转化函数:

String sqlst = "select convert(varchar(10),bookDate,126) as convertBookDate from roomBook where bookDate between '2007-4-10' and '2007-4-25'";

System.out.println(rs.getString("convertBookDate"));

2、利用SimpleDateFormat类:

先要输入两个java包:

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

然后:

定义日期格式:SimpleDateFormat sdf = new SimpleDateFormat(yy-MM-dd);

sql语句为:String sqlStr = "select bookDate from roomBook where bookDate between '2007-4-10' and '2007-4-25'";

输出:

System.out.println(df.format(rs.getDate("bookDate")));

3.Java中时间比较大小

方法一:

DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");

String dateBegin=fmt.format(carrierCommand.getDateBegin());

String dateEnd=fmt.format(carrierCommand.getDateEnd());

//如果获得的日期格式不是'2008-05-22',就必须要格式化一下日期

String dateBegin = request.getParameter("dateBegin");

String dateEnd = request.getParameter("dateEnd");

if(java.sql.Date.valueOf(dateBegin).after(java.sql.Date.valueOf(dateEnd))){

//起始日期大于结束日期

errors.rejectValue("dateEnd", null, "起始日期必须小于结束日期!");

}

StringBuffer timeBegin = new StringBuffer();

StringBuffer timeEnd = new StringBuffer();

timeBegin.append(request.getParameter("timeBegin"));

timeEnd.append(request.getParameter("timeEnd"));

timeBegin.append(":00");

timeEnd.append(":00");

if(java.sql.Date.valueOf(dateBegin).equals(java.sql.Date.valueOf(dateEnd)))

{ //起始日期等于结束日期

if(java.sql.Time.valueOf(timeBegin.toString()).equals(java.sql.Time.valueOf

(timeEnd.toString())))//时间相同

{

errors.rejectValue("timeEnd", null, "起始与结束日期相同,起始时间必须小于结束时间!");

}

if(java.sql.Time.valueOf(timeBegin.toString()).after(java.sql.Time.valueOf

(timeEnd.toString())))//时间相同

{

errors.rejectValue("timeEnd", null, "起始与结束日期相同,起始时间必须小于结束时间!");

}

}

方法二:

public class test {

public static void main(String args[]) {

int i= compare_date("1995-11-12 15:21", "1999-12-11 09:59");

System.out.println("i=="+i);

}

public static int compare_date(String DATE1, String DATE2) {

DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm");

try {

Date dt1 = df.parse(DATE1);

Date dt2 = df.parse(DATE2);

if (dt1.getTime() > dt2.getTime()) {

System.out.println("dt1 在dt2前");

return 1;

} else if (dt1.getTime() < dt2.getTime()) {

System.out.println("dt1在dt2后");

return -1;

} else {

return 0;

}

} catch (Exception exception) {

exception.printStackTrace();

}

return 0;

}

}

4.java.util.Date和java.sql.Date的区别及应用

java.util.Date 就是在除了SQL语句的情况下面使用
java.sql.Date 是针对SQL语句使用的,它只包含日期而没有时间部分
它都有getTime方法返回毫秒数,自然就可以直接构建
java.util.Date d = new java.util.Date(sqlDate.getTime());

java.util.Date 是 java.sql.Date 的父类(注意拼写)
前者是常用的表示时间的类,我们通常格式化或者得到当前时间都是用他
后者之后在读写数据库的时候用他,因为PreparedStament的setDate()的第2参数和ResultSet的getDate()方法的第2个参数都是java.sql.Date
转换是

java.sql.Date date=new Java.sql.Date();
java.util.Date d=new java.util.Date (date.getTime());

java.util.Date转为java.sql.Date
java.util.Date utilDate=new Date();
java.sql.Date sqlDate=new java.sql.Date(utilDate.getTime());
java.util.Date utilDate=new Date();
java.sql.Date sqlDate=new java.sql.Date(utilDate.getTime());
java.sql.Time sTime=new java.sql.Time(utilDate.getTime());
java.sql.Timestamp stp=new java.sql.Timestamp(utilDate.getTime());

继承关系:java.lang.Object --> java.util.Date --> java.sql.Date
具体的转换关系就是java.util.Date d=new java.util.Date (new Java.sql.Date());

5.取得指定日期是星期几

取得指定日期是星期几可以采用下面两种方式取得日期是星期几:

a、使用Calendar类

  1. //根据日期取得星期几
  2. public static String getWeek(Date date){
  3. String[] weeks = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
  4. Calendar cal = Calendar.getInstance();
  5. cal.setTime(date);
  6. int week_index = cal.get(Calendar.DAY_OF_WEEK) - 1;
  7. if(week_index<0){
  8. week_index = 0;
  9. }
  10. return weeks[week_index];
  11. }

b、使用SimpleDateFormat类

  1. //根据日期取得星期几
  2. public static String getWeek(Date date){
  3. SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
  4. String week = sdf.format(date);
  5. return week;
  6. }

注:格式化字符串存在区分大小写
对于创建SimpleDateFormat传入的参数:EEEE代表星期,如“星期四”;MMMM代表中文月份,如“十一月”;MM代表月份,如“11”;
yyyy代表年份,如“2010”;dd代表天,如“25”

6.取得日期是某年的第几周

根据日期入得日期是某年的第几周。

  1. //取得日期是某年的第几周
  2. public static int getWeekOfYear(Date date){
  3. Calendar cal = Calendar.getInstance();
  4. cal.setTime(date);
  5. int week_of_year = cal.get(Calendar.WEEK_OF_YEAR);
  6. return week_of_year;
  7. }
 

7.得到某年的某个月有多少天

已知年份和月份,取得该月有多少天。

  1. //取得某个月有多少天
  2. public static int getDaysOfMonth(int year,int month){
  3. Calendar cal = Calendar.getInstance();
  4. cal.set(Calendar.YEAR, year);
  5. cal.set(Calendar.MONTH, month-1);
  6. int days_of_month = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
  7. return days_of_month;
  8. }
 

8.取得两个日期之间的相差多少天

已知两个日期,计算它们之间相差多少天。

  1. // 取得两个日期之间的相差多少天
  2. public static long getDaysBetween(Date date0, Date date1) {
  3. long daysBetween = (date0.getTime() - date1.getTime() + 1000000) / 86400000;// 86400000=3600*24*1000  用立即数,减少乘法计算的开销
  4. return daysBetween;
  5. }
 

9.在Java中将String型转换成Date型

java.util.Date =
java.text.DateFormat.getDateInstance().parse(date String); java.util.Date = java.text.DateFormat.getDateInstance().parse(date
String);or SimpleDateFormat format = new SimpleDateFormat( "dd.MM.yyyy"
);
Date date = format.parse( myString );
SimpleDateFormat format = new SimpleDateFormat( "dd.MM.yyyy" );
Date date= format.parse( myString );

  

10.开发过程中会遇到输出某种编码的字符,如iso8859-1等,实现输出一个某种编码的字符串:

//字符串打散重组
Public String translate (String str) { 

  String tempStr = "";
  try {
      tempStr = new String(str.getBytes("ISO-8859-1"), "GBK");
      tempStr = tempStr.trim();
    }
    catch (Exception e) {
      System.err.println(e.getMessage());
	  }
    return tempStr;
	}

Java 对时间和日期的相关处理的更多相关文章

  1. Java 8时间和日期API 20例

    本文由 ImportNew - Sandy 翻译自 javarevisited.欢迎加入翻译小组.转载请见文末要求. 伴随lambda表达式.streams以及一系列小优化,Java 8 推出了全新的 ...

  2. Java中时间和日期的处理

    一.日期转换为字符串 1.日期以特定的格式输出: // 创建日期并转换为yyyy-MM-dd格式_(MM一定要大写,以免与hh:mm:ss中的mm冲突) SimpleDateFormat sdf = ...

  3. java 任意时间转换日期类型

    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); try { Date dd=sdf.parse("201 ...

  4. ☕【Java深层系列】「技术盲区」让我们一起完全吃透针对于时间和日期相关的API指南

    技术简介 java中的日期处理一直是个问题,没有很好的方式去处理,所以才有第三方框架的位置比如joda.文章主要对java日期处理的详解,用1.8可以不用joda. 时间概念 首先我们对一些基本的概念 ...

  5. Android随笔之——Android时间、日期相关类和方法

    今天要讲的是Android里关于时间.日期相关类和方法.在Android中,跟时间.日期有关的类主要有Time.Calendar.Date三个类.而与日期格式化输出有关的DateFormat和Simp ...

  6. java开源时间/日期库Joda-Time

    任何企业应用程序都需要处理时间问题.应用程序需要知道当前的时间点和下一个时间点,有时它们还必须计算这两个时间点之间的路径.使用 JDK 完成这项任务将非常痛苦和繁琐.现在来看看 Joda Time,一 ...

  7. java JDK8 学习笔记——第13章 时间与日期

    第十三章 时间与日期 13.1 认识时间与日期 13.1.1 时间的度量 1.格林威治标准时间GMT 格林威治标准时间的正午是太阳抵达天空最高点之时.现在已经不作为标准时间使用. 2.世界时UT世界时 ...

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

    java 8是如何处理时间及日期的 有人问我学习一个新库的最佳途径是什么?我的回答是,就是在实际项目中那样去使用它.在一个真实的项目中会有各种各样的需求,这会促使开发人员去探索和研究这个新库.简言之, ...

  9. 【java】JDK1.8时间日期库 新特性 所有java中时间Date的使用

    除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用java 8的这套API.Java对日期, ...

随机推荐

  1. Android Studio使用教程

    http://blog.csdn.net/ryantang03/article/details/8948037 http://blog.csdn.net/ryantang03/article/deta ...

  2. Kd-tree算法原理

    参考资料: Kd Tree算法原理 Kd-Tree,即K-dimensional tree,是一棵二叉树,树中存储的是一些K维数据.在一个K维数据集合上构建一棵Kd-Tree代表了对该K维数据集合构成 ...

  3. 大数据分析与机器学习领域Python兵器谱

    http://www.thebigdata.cn/JieJueFangAn/13317.html 曾经因为NLTK的缘故开始学习Python,之后渐渐成为我工作中的第一辅助脚本语言,虽然开发语言是C/ ...

  4. 转载大神的检测网站重定向的python脚本

    #!/usr/bin/env python #coding=utf8 import sys import requests def check_for_redirects(url): try: r = ...

  5. C++ 迭代器 基础介绍

    C++ 迭代器 基础介绍 迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围.迭代器就如同一个指针.事实上,C++的指针也是一种迭代器.但是,迭代器不仅仅是指针,因此你不能认为他们一定 ...

  6. 使用qsort对结构体的数据排序

    1007 DNA 排序 题目大意: 序列“未排序程度”的一个计算方式是元素乱序的元素对个数.例如:在单词序列“DAABEC'”中,因为D大于右边四个单词,E大于C,所以计算结果为5.这种计算方法称为序 ...

  7. sudo: unable to resolve host ubuntu提示的解决

    http://blog.sina.com.cn/s/blog_6c9d65a1010180mg.html

  8. 在表单(input)中id和name的区别

    但是name在以下用途是不能替代的: 1. 表单(form)的控件名,提交的数据都用控件的name而不是id来控制.因为有许多name会同时对应多个控件,比如checkbox和radio,而id必须是 ...

  9. Android Broadcast Receiver 使用入门

    Broadcast Receiver 的使用        1.Broadcast Receiver简介        2.Broadcast Receiver接收系统自带的广播        3.自 ...

  10. GLUT教程 - 安装

    转载:http://www.cnblogs.com/live41/p/3368830.html glut库 - 下载频道 - CSDN.NEThttp://download.csdn.net/down ...