Android--获取系统时间的几种方式

简介: 版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/chaoyu168/article/details/50729689 方式一:import java.
版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/chaoyu168/article/details/50729689

方式一:

import   java.text.SimpleDateFormat;    
  SimpleDateFormat   formatter   =   new   SimpleDateFormat   ("yyyy年MM月dd日   HH:mm:ss");   
  Date curDate =  new Date(System.currentTimeMillis());
//获取当前时间  
String   str   =   formatter.format(curDate);

方式二:

取得系统时间
1。
long time=System.currentTimeMillis();
 
2。
final Calendar mCalendar=Calendar.getInstance();
mCalendar.setTimeInMillis(time);
取得小时:mHour=mCalendar.get(Calendar.HOUR);
取得分钟:mMinuts=mCalendar.get(Calendar.MINUTE);
 
 
3。
Time t=new Time(); // or Time t=new Time("GMT+8"); 加上Time Zone资料
t.setToNow(); // 取得系统时间。
int year = t.year;
int month = t.month;
int date = t.monthDay;
int hour = t.hour;    // 0-23
 
4。
DateFormat df = new SimpleDateFormat("HH:mm:ss");
df.format(new Date());

TimeUtils

 
 
import android.util.Log;      
import java.text.ParseException;      
import java.text.SimpleDateFormat;      
import java.util.Calendar;      
import java.util.Date;      
      
      
public class TimeUtils {      
      
    /**   
     * 获取当前时间   
     * @return   
     */      
    public static String getNowTime(){      
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");      
        Date date = new Date(System.currentTimeMillis());      
        return simpleDateFormat.format(date);      
    }      
    /**   
     * 获取时间戳   
     *   
     * @return 获取时间戳   
     */      
    public static String getTimeString() {      
        SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");      
        Calendar calendar = Calendar.getInstance();      
        return df.format(calendar.getTime());      
    }      
    /**   
     * 时间转换为时间戳   
     * @param time:需要转换的时间   
     * @return   
     */      
    public static String dateToStamp(String time)  {      
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");      
        Date date = null;      
        try {      
            date = simpleDateFormat.parse(time);      
        } catch (ParseException e) {      
            e.printStackTrace();      
        }      
        long ts = date.getTime();      
        return String.valueOf(ts);      
    }      
      
    /**   
     * 时间戳转换为字符串   
     * @param time:时间戳   
     * @return   
     */      
    public static String times(String time) {  
        SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分");  
        @SuppressWarnings("unused")  
        long lcc = Long.valueOf(time);  
        int i = Integer.parseInt(time);  
        String times = sdr.format(new Date(i * 1000L));  
        return times;  
  
    }     
    /**   
     *获取距现在某一小时的时刻   
     * @param hour hour=-1为上一个小时,hour=1为下一个小时   
     * @return   
     */      
    public static String getLongTime(int hour){      
        Calendar c = Calendar.getInstance(); // 当时的日期和时间      
        int h; // 需要更改的小时      
        h = c.get(Calendar.HOUR_OF_DAY) - hour;      
        c.set(Calendar.HOUR_OF_DAY, h);      
        SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");      
        Log.v("time",df.format(c.getTime()));      
        return df.format(c.getTime());      
    }    
    /**  
     * 比较时间大小  
     * @param str1:要比较的时间  
     * @param str2:要比较的时间  
     * @return  
     */    
    public static boolean isDateOneBigger(String str1, String str2) {    
        boolean isBigger = false;    
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");    
        Date dt1 = null;    
        Date dt2 = null;    
        try {    
            dt1 = sdf.parse(str1);    
            dt2 = sdf.parse(str2);    
        } catch (ParseException e) {    
            e.printStackTrace();    
        }    
        if (dt1.getTime() > dt2.getTime()) {    
            isBigger = true;    
        } else if (dt1.getTime() < dt2.getTime()) {    
            isBigger = false;    
        }    
        return isBigger;    
    }    
}      
  /** 
  * 当地时间 ---> UTC时间 
  * @return 
  */  
 public static String Local2UTC(){  
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
     sdf.setTimeZone(TimeZone.getTimeZone("gmt"));  
     String gmtTime = sdf.format(new Date());  
     return gmtTime;  
 }  
  
  /** 
  * UTC时间 ---> 当地时间 
  * @param utcTime   UTC时间 
  * @return 
  */  
 public static String utc2Local(String utcTime) {  
     SimpleDateFormat utcFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//UTC时间格式  
     utcFormater.setTimeZone(TimeZone.getTimeZone("UTC"));  
     Date gpsUTCDate = null;  
     try {  
         gpsUTCDate = utcFormater.parse(utcTime);  
     } catch (ParseException e) {  
         e.printStackTrace();  
     }  
     SimpleDateFormat localFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//当地时间格式  
     localFormater.setTimeZone(TimeZone.getDefault());  
     String localTime = localFormater.format(gpsUTCDate.getTime());  
     return localTime;  
 }  
package com.example.time;

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

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		new Thread(){
			public void run() {
				String time = Local2UTC("2018-03-19 19:41:44");
				System.out.println("time"+time);
			};
		}.start();
	}
	/**
	 * 将本地时间转为UTC时间
	 * @param strDate:需要转化的date
	 * @return
	 */
	public String Local2UTC(String strDate){  
	     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
	     String gmtTime = "";
	     sdf.setTimeZone(TimeZone.getTimeZone("gmt"));  
	     gmtTime = sdf.format(stringToDate(strDate, "yyyy-MM-dd HH:mm:ss"));
	     return gmtTime;  
	 }  
	/**
	 * 将string类型转换为date类型
	 * @param strTime:要转换的string类型的时间,时间格式必须要与formatType的时间格式相同
	 * @param formatType:要转换的格式yyyy-MM-dd HH:mm:ss//yyyy年MM月dd日
	 * @return
	 */
    private Date stringToDate(String strTime, String formatType){
        SimpleDateFormat formatter = new SimpleDateFormat(formatType);
        Date date = null;
        try {
			date = (Date) formatter.parse(strTime);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        return date;
    }

}



目录
相关文章
|
移动开发 Java Android开发
uni-app&H5&Android混合开发三 || uni-app调用Android原生方法的三种方式
uni-app&H5&Android混合开发三 || uni-app调用Android原生方法的三种方式
1395 0
uni-app&H5&Android混合开发三 || uni-app调用Android原生方法的三种方式
|
安全 Java 定位技术
Android 校正系统时间的三种解决方案
Android 校正系统时间的三种解决方案
1600 0
|
编解码 Android开发
性能优化:Android中Bitmap内存大小优化的几种常见方式
性能优化:Android中Bitmap内存大小优化的几种常见方式
|
存储 编解码 前端开发
Android自定义控件(八)——详解创建bitmap的方式
Android自定义控件(八)——详解创建bitmap的方式
238 0
Android自定义控件(八)——详解创建bitmap的方式
|
XML Android开发 数据格式
Android自定义控件(五)——圆形头像最简单的实现方式
Android自定义控件(五)——圆形头像最简单的实现方式
445 0
Android自定义控件(五)——圆形头像最简单的实现方式
|
JSON Android开发 数据格式
android中Json数据保存方式
android中Json数据保存方式
170 0
|
移动开发 Dart 前端开发
这么多移动开发的方式,传统方式写安卓、IOS 还有出路吗?
我所说的传统的方式是指,用 Java 或者 Kotlin 写安卓,用 Object-C 或者 Swift 写 IOS。
258 0
这么多移动开发的方式,传统方式写安卓、IOS 还有出路吗?
|
程序员 Android开发 开发者
Android开发:获取当前系统时间和日期的方法
最近接手了公司的一个Android项目,一直在处理Android项目的App的开发,作为半路起家来说,总结了一些Android开发的心得和知识点,然后就写下来记录一下,分享给有需要的开发者查阅交流。那么本篇博文就来分享一下在Android开发过程中,涉及到获取系统当前日期和时间的方法,知识点虽然很常见,但是很实用。
1938 0
Android开发:获取当前系统时间和日期的方法
|
存储 缓存 Java
Android 百度语音合成 (含离线、在线、API合成方式,详细步骤+源码)
Android 百度语音合成 (含离线、在线、API合成方式,详细步骤+源码)
511 0
Android 百度语音合成 (含离线、在线、API合成方式,详细步骤+源码)
|
Android开发
android activity方式的dialog
android activity方式的dialog
153 0
android activity方式的dialog