zoukankan      html  css  js  c++  java
  • android 时间获取以及时间格式化

    Android中获取系统时间有多种方法,可分为Java中Calendar类获取,java.util.date类实现,还有android中Time实现

    现总结如下:

    方法一;

    void getTime1(){
        	long time=System.currentTimeMillis();//long now = android.os.SystemClock.uptimeMillis();
        	SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        	Date d1=new Date(time);
        	String t1=format.format(d1);
        	Log.e("msg", t1);
        }
    

     
    方法二;

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");
            String t=format.format(new Date());
            Log.e("msg", t);
    

     
    方法三;

    void getTime3(){
        	Calendar calendar = Calendar.getInstance();
    		String created = calendar.get(Calendar.YEAR) + "年"
    				+ (calendar.get(Calendar.MONTH)+1) + "月"//从0计算
    				+ calendar.get(Calendar.DAY_OF_MONTH) + "日"
    				+ calendar.get(Calendar.HOUR_OF_DAY) + "时"
    				+ calendar.get(Calendar.MINUTE) + "分"+calendar.get(Calendar.SECOND)+"s";
    		Log.e("msg", created);
        }
    

      or

    private String getDate() {
    		Calendar c = Calendar.getInstance();
    		DecimalFormat df = new DecimalFormat("00");
    		return new StringBuilder()
    				.append(df.format(c.get(Calendar.YEAR))).append("-")
    				.append(df.format(c.get(Calendar.MONTH) + 1)).append("-")
    				.append(df.format(c.get(Calendar.DATE))).append("-")
    				.append(df.format(c.get(Calendar.HOUR_OF_DAY))).append("-")
    				.append(df.format(c.get(Calendar.MINUTE))).append("-")
    				.append(df.format(c.get(Calendar.SECOND))).toString();
    	}
    

    方法四;

    void getTime4(){
        	Time t=new Time(); // or Time t=new Time("GMT+8"); 加上Time Zone资料。
        	t.setToNow(); // 取得系统时间。
        	String time=t.year+"年 "+(t.month+1)+"月 "+t.monthDay+"日 "+t.hour+"h "+t.minute+"m "+t.second;
        	Log.e("msg", time);
        }
    

     

    获取星期日期:

    Calendar calendar = Calendar.getInstance();
                int day = calendar.get(Calendar.DAY_OF_WEEK);
                String today = null;
                if (day == 2) {
                    today = "Monday";
                } else if (day == 3) {
                    today = "Tuesday";
                } else if (day == 4) {
                    today = "Wednesday";
                } else if (day == 5) {
                    today = "Thursday";
                } else if (day == 6) {
                    today = "Friday";
                } else if (day == 7) {
                    today = "Saturday";
                } else if (day == 1) {
                    today = "Sunday";
                }
                System.out.println("Today is:- " + today);
    
    
    


    最后说一下日期格式化,日期格式化通常使用SimpleDateFormat类实现,其中的日期格式不能够自己随意定义,主要有以下几种形式:

    SimpleDateFormat f1= new SimpleDateFormat(); //其中没有些格式化参数,我们使用默认的日期格式。
    System.out.println(f.formate(new Date()));
    代码输出的日期格式为:12-3-22 下午4:36

    SimpleDateFormat f4= new SimpleDateFormat("今天是"+"yyyy年MM月dd日 E kk点mm分");//可根据不同样式请求显示不同日期格式,要显示星期可以添加E参数
    System.out.println(f4.format(new Date()));
    代码输出的日期格式为:今天是2012年03月22日 星期四 16点46分

    SimpleDateFormat formater = new SimpleDateFormat("yyyyMMdd hh:mm:ss");
     System.out.println("Date to String "+formater.format(new Date()));
    相近的常用形式还有 yyMMdd hh:mm:ss  yyyy-MM-dd hh:mm:ss  dd-MM-yyyy hh:mm:ss


    应有的时候通常还会需要把具体日期转换为毫秒或者Timestamp形式,如下:

    文本 - > Timestamp,日期 -> Timestamp
     

    Timestamp t ;
      SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
      try ...{
       t = new Timestamp(format.parse("2007-07-19 00:00:00").getTime());
      } catch (ParseException e) ...{
       e.printStackTrace();
      }
     Timestamp t ;
      SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
      t = new Timestamp(new Date().getTime());
    

    日期比较,转换处理

    public void compareToNowDate(Date date){
    		Date nowdate=new Date();
    		//format date pattern
    		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    		//convert to millions seconds
    		long time=DateToLong(StringToDate(formatter.format(nowdate)));
    		long serverTime=DateToLong(date);
    		//convert to seconds
    		long minTime=Math.abs(time-serverTime)/1000;	Log.d(getLocalClassName(), "minTime= "+minTime);
    	}
    	
    	private long DateToLong(Date time){
    		SimpleDateFormat st=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//yyyyMMddHHmmss
    		return Long.parseLong(st.format(time));
    	}
    
    	private Date StringToDate(String s){
    		Date time=null;
    		SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    		try {
    			time=sd.parse(s);
    		} catch (java.text.ParseException e) {
    			System.out.println("输入的日期格式有误!"); 
    			e.printStackTrace();
    		}
    		return time;
    	}
    

     计算日期之间相隔几天:

    public long compareDataToNow(String date){
    		 
    		  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");  
    		  Date passDate,nowDate;
    		  long diff=-100l,days=-100l;
    		  
    		 try {
    			 passDate = sdf.parse(date);
    			 String nowStr=sdf.format(new Date());
    			 nowDate=sdf.parse(nowStr);  
    			 
    			  diff = passDate.getTime() - nowDate.getTime();   
    			    days = diff / (1000 * 60 * 60 * 24); 
    			    System.out.println( "相隔:"+days+"天");
    		} catch (ParseException e) {
    			e.printStackTrace();
    		}
    		 return diff;
    	}
    





  • 相关阅读:
    三种常用排序理论
    无参带返回类型方法练习
    无参带返回类型方法总结
    Java_无参数无返回类型方法及练习
    Java_方法的调用②及案例
    方法内存分析(进栈(压栈)、出栈(弹栈))
    Java_方法的基本语法格式
    Java_方法的调用①及案例
    Java_方法的定义以及分类
    Java_break与continue区别
  • 原文地址:https://www.cnblogs.com/happyxiaoyu02/p/6818980.html
Copyright © 2011-2022 走看看