如何实现当前日期的如下格式输出:yyyy-mm-dd。如果要输出N天以前的日期输出,又如何实现?

解决方案 »

  1.   

    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
      

  2.   

    SimpleDateFormat formatter  = new SimpleDateFormat ("yyyy-MM-dd '' HH:mm:ss");  Date currentTime_1 = new Date();  String dateString = formatter.format(currentTime_1);
      

  3.   

    取10天前Calendar cld = Calendar.getInstance();
    int year = cld.get(Calendar.YEAR);
    int month = cld.get(Calendar.MONTH);
    int day = cld.get(Calendar.DAY_OF_MONTH);
    cld.add(Calendar.DAY_OF_MONTH,-10);
    String date = year + "-" + (month + 1) + "-" + day;
      

  4.   

    java.text.SimpleDateFormat formatter  = new java.text.SimpleDateFormat ("yyyy-MM-dd '' HH:mm:ss");
      

  5.   

    java.text.SimpleDateFormat formatter  = new java.text.SimpleDateFormat ("yy-MM-dd '' HH:mm:ss");yy,MM,HH都是可以修改的, 包括长度和顺序
      

  6.   

    package com.infoearth;import java.sql.Timestamp;
    import java.text.*;
    import java.util.*;
    /**
     * @lcl
     *
    public class ManageWeek {
     //判断两个日期是否在同一周
     boolean isSameWeekDates(Date date1, Date date2) {
      Calendar cal1 = Calendar.getInstance();
      Calendar cal2 = Calendar.getInstance();
      cal1.setTime(date1);
      cal2.setTime(date2);
      int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);
      if (0 == subYear) {
        if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
       return true;
      }
      else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) {
        // 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周
        if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
       return true;
      }
      else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) {
        if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
       return true;
      }
      return false;
     }
     
     
     //产生周序列
     public static String  getSeqWeek(){
      Calendar c = Calendar.getInstance(Locale.CHINA);
      String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR));
      if(week.length()==1)week = "0" + week;
      String year = Integer.toString(c.get(Calendar.YEAR));  
      return year+week;
      
     }
      
      //获得周一的日期
      public static String getMonday(Date date){
       Calendar c = Calendar.getInstance();
       c.setTime(date);
       c.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
       return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
      }
      
      
      //获得周五的日期
      public static String getFriday(Date date){
       Calendar c = Calendar.getInstance();
       c.setTime(date);
       c.set(Calendar.DAY_OF_WEEK,Calendar.FRIDAY);   
       return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());  
      }//当前日期前几天或者后几天的日期 public static String afterNDay(int n){
            Calendar c=Calendar.getInstance();
            DateFormat df=new SimpleDateFormat("yyyy-MM-dd");
            c.setTime(new Date());
            c.add(Calendar.DATE,n);
            Date d2=c.getTime();
            String s=df.format(d2);
            return s;
        }
      
      public static void main(String[] args){  }}
    经常碰到把一个字符串转成一个Date的问题,其实就3句话:String myString = "2005/12/20";SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd", Locale.CHINA);
    Date d = sdf.parse(myString);下面是个例子,存档
    package formatdatetime;import java.text.*;
    import java.util.*;/**
     * @author Administrator
     *
     * TODO 要更改此生成的类型注释的模板,请转至
     * 窗口 - 首选项 - Java - 代码样式 - 代码模板
     */
    public class StringToDateTimeTest { public static void main(String[] args) {  String myString = "Tue Oct 18 04:11:56 CST 2005";
      //String myString = "2005/12/20";
      try {
       SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
       //SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd", Locale.CHINA);
       Date d = sdf.parse(myString);
       Calendar c = Calendar.getInstance();
       c.setTime(d);
       String s = new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
       System.out.println(s);
       
      } catch (Exception e) {
       e.printStackTrace();
      }
     }
    }