Android 时间获取及格式化

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

//一
   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); 

//三
   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); 

//四
   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);

最后说一下日期格式化,日期格式化通常使用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;  
    } 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,519评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,842评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,544评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,742评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,646评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,027评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,513评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,169评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,324评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,268评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,299评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,996评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,591评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,667评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,911评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,288评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,871评论 2 341

推荐阅读更多精彩内容

  • 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析...
    时待吾阅读 4,951评论 0 6
  • 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析...
    时待吾阅读 4,912评论 1 13
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,263评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,561评论 18 139
  • 我之所以喜欢《十年》,爱之入骨,是因为《十年》是我们高三时的班歌,而恰好,高三是我最快乐的一年。 那会儿多幸福呀,...
    Fo念及他名阅读 256评论 0 0