Android 获取系统时间、网络时间、时区时间

2020-07-02  本文已影响0人  cain07

方法一:SimpleDateFormat  24小时制

SimpleDateFormat formart = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
formart.setTimeZone(TimeZone.getTimeZone("GMT+08"));  
String date = formart.format(new Date());

方法二:Calendar 非24小时制

Calendar calendar = Calendar.getInstance();

SimpleDateFormat formart = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss");

formart.setTimeZone(TimeZone.getTimeZone("GMT+8"));

String time = sdf.format(calendar.getTime());

方法三: GregorianCalendar

public static String getLocalDatetime(String local) {  
   Calendar calendar = new GregorianCalendar(TimeZone.getTimeZone(local));  
   calendar.setTimeInMillis(Calendar.getInstance().getTimeInMillis());  
   String date = calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-" + calendar.get(Calendar.DAY_OF_MONTH);  
   String time = calendar.get(Calendar.HOUR_OF_DAY) + ":" + calendar.get(Calendar.MINUTE) + ":" + calendar.get(Calendar.SECOND);  
   return date + " " + time;  
}

方法四:获取网络时间(http://www.bjtime.cn

// 取得 bjtime url
URL url = new URL("http://www.bjtime.cn");
// 生成 URLConnection对象
URLConnection connection = url.openConnection();
connection.connect(); 
// 取得网站日期时间
long date = connection.getDate(); 
// 转换为标准时间对象
Date date = new Date(date);
String dateTime = date.getHours()+":"+date.getMinutes()+":"+date.getSeconds());

方法五:获取本地(当地)时间 LocationManager

LocationManager manager = (LocationManager) this.getSystemService(MainActivity.LOCATION_SERVICE);
long networkTime = manager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER).getTime();
// 获取当前时间
manager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this); 

// 当我们使用requestLocationUpdates时,我们需要实现LocationListener接口。
// 在LocationListen的回调onLocationChanged当中获取时间

@Override
public void onLocationChanged(Location location) {
    long time = location.getTime();
    Date date = new Date(time);
    Sring dateTime = time + " NETWORK_PROVIDER " + date);
}
上一篇下一篇

猜你喜欢

热点阅读