java日期格式大全 format SimpleDateFormat

 

/** 
   * 字符串转换为java.util.Date<br> 
   * 支持格式为 yyyy.MM.dd G 'at' hh:mm:ss z 如 '2002-1-1 AD at 22:10:59 PSD'<br> 
   * yy/MM/dd HH:mm:ss 如 '2002/1/1 17:55:00'<br> 
   * yy/MM/dd HH:mm:ss pm 如 '2002/1/1 17:55:00 pm'<br> 
   * yy-MM-dd HH:mm:ss 如 '2002-1-1 17:55:00' <br> 
   * yy-MM-dd HH:mm:ss am 如 '2002-1-1 17:55:00 am' <br> 
   * @param time String 字符串<br> 
   * @return Date 日期<br> 
   */ 
public static Date stringToDate(String time){ 
    SimpleDateFormat formatter; 
    int tempPos=time.indexOf("AD") ; 
    time=time.trim() ; 
    formatter = new SimpleDateFormat ("yyyy.MM.dd G 'at' hh:mm:ss z"); 
    if(tempPos>-1){ 
      time=time.substring(0,tempPos)+ 
           "公元"+time.substring(tempPos+"AD".length());//china 
      formatter = new SimpleDateFormat ("yyyy.MM.dd G 'at' hh:mm:ss z"); 
    } 
    tempPos=time.indexOf("-"); 
    if(tempPos>-1&&(time.indexOf(" ")<0)){ 
      formatter = new SimpleDateFormat ("yyyyMMddHHmmssZ"); 
    } 
    else if((time.indexOf("/")>-1) &&(time.indexOf(" ")>-1)){ 
      formatter = new SimpleDateFormat ("yyyy/MM/dd HH:mm:ss"); 
    } 
    else if((time.indexOf("-")>-1) &&(time.indexOf(" ")>-1)){ 
      formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss"); 
    } 
    else if((time.indexOf("/")>-1) &&(time.indexOf("am")>-1) ||(time.indexOf("pm")>-1)){ 
      formatter = new SimpleDateFormat ("yyyy-MM-dd KK:mm:ss a"); 
    } 
    else if((time.indexOf("-")>-1) &&(time.indexOf("am")>-1) ||(time.indexOf("pm")>-1)){ 
      formatter = new SimpleDateFormat ("yyyy-MM-dd KK:mm:ss a"); 
    } 
    ParsePosition pos = new ParsePosition(0); 
    java.util.Date ctime = formatter.parse(time, pos);

return ctime; 
}

/** 
   * 将java.util.Date 格式转换为字符串格式'yyyy-MM-dd HH:mm:ss'(24小时制)<br> 
   * 如Sat May 11 17:24:21 CST 2002 to '2002-05-11 17:24:21'<br> 
   * @param time Date 日期<br> 
   * @return String   字符串<br> 
   */

public static String dateToString(Date time){ 
    SimpleDateFormat formatter; 
    formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss"); 
    String ctime = formatter.format(time);

return ctime; 
}

/** 
   * 将java.util.Date 格式转换为字符串格式'yyyy-MM-dd HH:mm:ss a'(12小时制)<br> 
   * 如Sat May 11 17:23:22 CST 2002 to '2002-05-11 05:23:22 下午'<br> 
   * @param time Date 日期<br> 
   * @param x int 任意整数如:1<br> 
   * @return String 字符串<br> 
   */ 
public static String dateToString(Date time,int x){ 
    SimpleDateFormat formatter; 
    formatter = new SimpleDateFormat ("yyyy-MM-dd KK:mm:ss a"); 
    String ctime = formatter.format(time);

return ctime; 
}

/** 
   *取系统当前时间:返回只值为如下形式 
   *2002-10-30 20:24:39 
   * @return String 
   */ 
public static String Now(){ 
    return dateToString(new Date()); 
}

/** 
   *取系统当前时间:返回只值为如下形式 
   *2002-10-30 08:28:56 下午 
   *@param hour 为任意整数 
   *@return String 
   */ 
public static String Now(int hour){ 
    return dateToString(new Date(),hour); 
}

/** 
   *取系统当前时间:返回值为如下形式 
   *2002-10-30 
   *@return String 
   */ 
public static String getYYYY_MM_DD(){ 
    return dateToString(new Date()).substring(0,10);

}

/** 
   *取系统给定时间:返回值为如下形式 
   *2002-10-30 
   *@return String 
   */ 
   public static String getYYYY_MM_DD(String date){ 
    return date.substring(0,10);

}

public static String getHour(){ 
    SimpleDateFormat formatter; 
    formatter = new SimpleDateFormat ("H"); 
    String ctime = formatter.format(new Date()); 
    return ctime; 
    }

public static String getDay(){ 
      SimpleDateFormat formatter; 
    formatter = new SimpleDateFormat ("d"); 
    String ctime = formatter.format(new Date()); 
    return ctime; 
    }

public static String getMonth(){ 
    SimpleDateFormat formatter; 
    formatter = new SimpleDateFormat ("M"); 
    String ctime = formatter.format(new Date()); 
    return ctime; 
    }

public static String getYear(){ 
    SimpleDateFormat formatter; 
    formatter = new SimpleDateFormat ("yyyy"); 
    String ctime = formatter.format(new Date()); 
    return ctime; 
    } 
      
public static String getWeek(){ 
    SimpleDateFormat formatter; 
    formatter = new SimpleDateFormat ("E"); 
    String ctime = formatter.format(new Date()); 
    return ctime; 
    }

在jsp页面中的日期格式和sqlserver中的日期格式不一样,怎样统一?

在页面上显示输出时,用下面的函数处理一下

public class DateUtil(){ 
    public static String fmtShortEnu(Date myDate) { 
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd"); 
    String strDate = formatter.format(myDate); 
    return strDate; 

}

new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
new java.text.SimpleDateFormat("yyyy-MM-dd") 
建议还是把sqlserver的字段类型改成varchar的吧,用字符串处理可以完全按照自己的意愿处理,没有特殊的需求,不要使用date型

字串日期格式转换 
用的API是SimpleDateFormat,它是属於java.text.SimpleDateFormat,所以请记得import进来!

用法: 
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
这一行最重要,它确立了转换的格式,yyyy是完整的西元年,MM是月份,dd是日期, 至於HH:mm:ss就不需要我再解释了吧! 
ps:为什麽有的格式大写,有的格式小写,那是怕避免混淆,例如MM是月份,mm是分;HH是24小时制,而hh是12小时制

1.字串转日期: 
 2002-10-8 15:30:22要把它转成日期,可以用 
 Date date=sdf.parse("2002-10-8 15:30:22"); 
2.日期转字串 
 假如把今天的日期转成字串可用 
 String datestr=sdf.format(new Date()); 
 这个字串的内容便类似2002-10-08 14:55:38

透过这个API我们便可以随心所欲的将日期转成我们想要的字串格式,例如希望将日期输出成2002年10月08日, 
我们可以这麽写: 
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日"); 
String datestr=sdf.format(new Date()); 
datestr便会依照我们设定的格式输出

//对日期格式的转换成("yyyy-MM-dd")格式的方法 
public java.sql.Date Convert(String str) 

    java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd"); 
    try 
    { 
      java.util.Date d = sdf.parse(str); 
      java.sql.Date d1 = new java.sql.Date(d.getTime()); 
      return d1; 
    } 
    catch(Exception ex) 
    { 
      ex.printStackTrace(); 
      return null; 
    } 

应用如下: 
ctmt.setDate(7,this.Convert(info.getManBirth())); // @DATETIME

常用日期问题集锦

1、获取服务器端当前日期: 
<%@ page import="java.util.Date"%> 
<% 
Date myDate = new Date(); 
%>

2、获取当前年、月、日: 
<%@ page import="java.util.Date"%>

<% 
Date myDate = new Date(); 
int thisYear = myDate.getYear() + 1900;//thisYear = 2003 
int thisMonth = myDate.getMonth() + 1;//thisMonth = 5 
int thisDate = myDate.getDate();//thisDate = 30 
%>

3、按本地时区输出当前日期 
<%@ page import="java.util.Date"%> 
<% 
Date myDate = new Date(); 
out.println(myDate.toLocaleString()); 
%> 
输出结果为: 
2003-5-30

4、获取数据库中字段名为”publish_time“、类型为Datetime的值 
<%@ page import="java.util.Date"%> 
<% 
...连接数据库... 
ResultSet rs = ... 
Date sDate = rs.getDate("publish_time"); 
%>

5、按照指定格式打印日期

  1. <%@ page import="java.util.Date"%>
  2. <%@ page import="java.text.DateFormat"%>
  3. <%
  4. Date dNow = new Date();
  5. SimpleDateFormat formatter = new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
  6. out.println("It is " + formatter.format(dNow));
  7. %>
  8. 输出的结果为:
  9. It is 星期五 2003.05.30 at 11:30:46 上午 CST
  10. (更为详尽的格式符号请参看SimpleDateFormat类)
  11. 6、将字符串转换为日期
  12. <%@ page import="java.util.Date"%>
  13. <%@ page import="java.text.DateFormat"%>
  14. <%
  15. String input = "1222-11-11";
  16. SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
  17. Date t = null;
  18. try{
  19. t = formatter.parse(input);
  20. out.println(t);
  21. }catch(ParseException e){
  22. out.println("unparseable using " + formatter);
  23. }
  24. %>
  25. 输出结果为:
  26. Fri Nov 11 00:00:00 CST 1222
  27. 7、计算日期之间的间隔
  28. <%@ page import="java.util.Date"%>
  29. <%@ page import="java.text.DateFormat"%>
  30. <%
  31. String input = "2003-05-01";
  32. SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
  33. Date d1 = null;
  34. try{
  35. d1 = formatter.parse(input);
  36. }catch(ParseException e){
  37. out.println("unparseable using " + formatter);
  38. }
  39. Date d2 = new Date();
  40. long diff = d2.getTime() - d1.getTime();
  41. out.println("Difference is " + (diff/(1000*60*60*24)) + " days.");
  42. %>
  43. 输出结果为:
  44. Difference is 29 days.
  45. 8、日期的加减运算
  46. 方法:用Calendar类的add()方法
  47. <%@ page import="java.util.*"%>
  48. <%@ page import="java.text.*"%>
  49. <%
  50. Calendar now = Calendar.getInstance();
  51. SimpleDateFormat formatter = new SimpleDateFormat("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
  52. out.println("It is now " + formatter.format(now.getTime()));
  53. now.add(Calendar.DAY_OF_YEAR,-(365*2));
  54. out.println("<br>");
  55. out.println("Two years ago was " + formatter.format(now.getTime()));
  56. %>
  57. 输出结果为:
  58. It is now 星期五 2003.05.30 at 01:45:32 下午 CST
  59. Two years ago was 星期三 2001.05.30 at 01:45:32 下午 CST
  60. 9、比较日期
  61. 方法:用equals()、before()、after()方法
  62. <%@ page import="java.util.*"%>
  63. <%@ page import="java.text.*"%>
  64. <%
  65. DateFormat df = new SimpleDateFormat("yyy-MM-dd");
  66. Date d1 = df.parse("2000-01-01");
  67. Date d2 = df.parse("1999-12-31");
  68. String relation = null;
  69. if(d1.equals(d2))
  70. relation = "the same date as";
  71. else if(d1.before(d2))
  72. relation = "before";
  73. else
  74. relation = "after";
  75. out.println(d1 +" is " + relation + ' ' + d2);
  76. %>
  77. 输出结果为:
  78. Sat Jan 01 00:00:00 CST 2000 is after Fri Dec 31 00:00:00 CST 1999
  79. 10、记录一件事所花费的时间
  80. 方法:调用两次System.getTimeMillis()方法,求差值
  81. <%@ page import="java.text.*"%>
  82. <%
  83. long t0,t1;
  84. t0 = System.currentTimeMillis();
  85. out.println("Cyc starts at " + t0);
  86. int k = 0;
  87. for(int i =0;i<100000;i++){
  88. k += i;
  89. }
  90. t1 = System.currentTimeMillis();
  91. out.println("<br>");
  92. out.println("Cyc ends at " + t1);
  93. out.println("<br>");
  94. out.println("This run took " + (t1-t0) + "ms.");
  95. %>
  96. 输出结果为:
  97. Cyc starts at 1054275312432
  98. Cyc ends at 1054275312442
  99. This run took 10ms.
  100. 其它:如何格式化小数
  101. <%@ page import="java.text.*"%>
  102. <%
  103. DecimalFormat df = new DecimalFormat(",###.00");
  104. double aNumber = 33665448856.6568975;
  105. String result = df.format(aNumber);
  106. out.println(result);
  107. %>
  108. 输出结果为:
  109. 33,665,448,856.66
  110. ======================
  111. 日期比较:
  112. 在JAVA中日期的计算与比较可以使用Date和DateFormat来解决,下面是一段示例代码:
  113. import java.text.*;
  114. import java.util.*;
  115. public class Test{
  116.  public static void main(String[] args){
  117.   try{
  118.    Date date=new Date();
  119.    DateFormat df=DateFormat.getDateTimeInstance();
  120.    String now=df.format(date);
  121.    System.out.println("现在时间:"+now);
  122.    System.out.println("现在时间是否在16:00之前:"+date.before(df.parse("2004-12-24 16:00:00")));
  123.   }
  124.   catch(ParseException e){System.out.print(e.getMessage());
  125.   }
  126.  }
  127. }

java日期格式大全 format SimpleDateFormat(转)的更多相关文章

  1. java日期格式大全 format SimpleDateFormat

    http://www.cnblogs.com/loveyakamoz/archive/2011/08/18/2145047.html

  2. Java日期时间API系列12-----Jdk8中java.time包中的新的日期时间API类,日期格式化,常用日期格式大全

    通过Java日期时间API系列10-----Jdk8中java.time包中的新的日期时间API类的DateTimeFormatter, 可以看出java8的DateTimeFormatter完美解决 ...

  3. java日期操作大全

    摘自(http://www.blogjava.net/i369/articles/83483.html) java日期操作 大全 先来一个:  取得指定月份的第一天与取得指定月份的最后一天  http ...

  4. Java 日期格式工具类

    Java 日期格式工具类 方法如下 DateUtil 类 import java.text.DateFormat; import java.text.ParseException; import ja ...

  5. C#时间日期格式大全

    C#时间/日期格式大全,C#时间/日期函数大全 有时候我们要对时间进行转换,达到不同的显示效果 默认格式为:2016-7-1 14:33:34 如果要换成成201607,07-2016,2016-7- ...

  6. java日期格式转换大全

    public class DateFormatUtils { private static Log logger = LogFactory.getLog(DateFormatUtils.class); ...

  7. Java日期格式转换

    Java时间格式转换大全 import java.text.*;import java.util.Calendar;public class VeDate {/**   * 获取现在时间   *    ...

  8. JAVA 日期格式工具类DateUtil.java

    DateUtil.java package pers.kangxu.datautils.utils; import java.text.SimpleDateFormat; import java.ut ...

  9. java 日期格式处理

    Java 日期时间 Date类型,long类型,String类型表现形式的转换 1.java.util.Date类型转换成long类型java.util.Date dt = new Date();Sy ...

随机推荐

  1. python 字典排序,列表排序详细

    在程序中使用字典进行数据信息统计时,由于字典是无序的所以打印字典时内容也是无序的.因此,为了使统计得到的结果更方便查看需要进行排序.Python中字典的排序分为按“键”排序和按“值”排序. 1.按“值 ...

  2. mysql 常用命令用法总结积木学院整理版

    一.启动与退出 1.进入MySQL:启动MySQL Command Line Client(MySQL的DOS界面),直接输入安装时的密码即可.此时的提示符是:mysql> 2.退出MySQL: ...

  3. JDK和JRE的区别

    JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE.Java工具和Java基础类库.Java Runtime Enviro ...

  4. hdu_5783_Divide the Sequence(贪心)

    题目链接:hdu_5783_Divide the Sequence 题意: 给你一个数列,让你分尽可能多的段,并且保证每一段的前缀和都不小于0 题解: 从后往前xjb贪心就行了 #include< ...

  5. LeetCode OJ 26. Remove Duplicates from Sorted Array

    Given a sorted array, remove the duplicates in place such that each element appear only once and ret ...

  6. LeetCode OJ 217.Contains Duplicate

    Given an array of integers, find if the array contains any duplicates. Your function should return t ...

  7. Office Web Apps 错误

    owa安装完后,在sharepoint网站上打开word,excel,报错,Sorry, something went wrong, 通过correlation id找到错误信息(如何在sharepo ...

  8. linux 配置tomcat服务器

    1. 找到tomcat安装包    find / -name apache-tomcat* 2. 解压包 tar zxvf apache-tomcat-7.0.67.tar.gz rpm -ivh j ...

  9. shell脚本一键同步集群时间

    shell脚本一键同步集群时间 弋嘤捕大 椿澄辄 ψ壤 茇徜燕 ㄢ交涔沔 阚龇棚绍 テ趼蜱棣 灵打了个寒颤也没有去甩脱愣是拖着 喇吉辔 秋北酏崖 琮淄脸酷 茇呶剑 莲夤罱 陕遇骸淫  ...

  10. psy 2

    PSY,心理线,顾名思义,庄家要洗筹必须打破市场尤其是散户的心理防线,才能让大家乖乖的交出筹码.月线的心理线尤其重要,PSY有几个数值,16,25,33,41,50,66,75.PSY的运用也是抓大黑 ...