package com.xiawenquam.testdate.demo;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//2012-08-13T14:19:53+0800
//两种时间戳格式
// String s = getTimeDisplay("20120813T14:19:53", this, false);
String s = getTimeDisplay("2012-08-13T14:19:53+0800", this, true);
System.out.println("s=== " + s);
((TextView)findViewById(R.id.textView)).setText(s);
}
/**
* 当前时间计算
*
* @param getDateString
* @return
*/
public static String getTimeDisplay(String getDateString, Context context) {
return getTimeDisplay(getDateString, context, true);
}
public static String getTimeDisplay(String getDateString, Context context, boolean timeZone) {
Date getDate = null;
try {
if (timeZone) {
getDate = getFormat("yyyy-MM-dd'T'HH:mm:ssZ").parse(getDateString);
} else {
getDate = getFormat("yyyyMMdd'T'HH:mm:ss").parse(getDateString);
}
} catch (ParseException e) {
getDate = new Date();
}
final long getTime = getDate.getTime();
final long currTime = System.currentTimeMillis();
final Date formatSysDate = new Date(currTime);
// 判断当前总天数
final int sysMonth = formatSysDate.getMonth() + 1;
final int sysYear = formatSysDate.getYear();
// 计算服务器返回时间与当前时间差值
final long seconds = (currTime - getTime) / 1000;
final long minute = seconds / 60;
final long hours = minute / 60;
final long day = hours / 24;
final long month = day / calculationDaysOfMonth(sysYear, sysMonth);
final long year = month / 12;
if (year > 0 || month > 0 || day > 0) {
final SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm");
return simpleDateFormat.format(getDate);
} else if (hours > 0) {
return hours + context.getString(R.string.str_hoursago);
} else if (minute > 0) {
return minute + context.getString(R.string.str_minsago);
} else if (seconds > 0) {
return "1" + context.getString(R.string.str_minsago);
// return seconds + context.getString(R.string.str_secondago);
} else {
// return "1" + context.getString(R.string.str_secondago);
return "1" + context.getString(R.string.str_minsago); //都换成分钟前
}
}
public static SimpleDateFormat getFormat(String partten) {
return new SimpleDateFormat(partten);
}
/**
* 计算月数
*
* @return
*/
private static int calculationDaysOfMonth(int year, int month) {
int day = 0;
switch (month) {
// 31天
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
// 30天
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
// 计算2月天数
case 2:
day = year % 100 == 0 ? year % 400 == 0 ? 29 : 28
: year % 4 == 0 ? 29 : 28;
break;
}
return day;
}
}
在发表评论的时候,是在多少分钟前的时间格式,上面就是实现方式。
分享到:
相关推荐
本文实例讲述了Android编程实现将时间转化成几分钟前、几天前等形式的工具类。分享给大家供大家参考,具体如下: 描述: 在Android开发客户端的时候,是在会显示时间是多久之前,比如10分钟前,8小时前,一月前等等...
在Android开发中,创建一个24小时横向时间轴是一个常见的需求,特别是在监控视频、日程管理或者数据分析等应用中。这个时间轴设计的目标是模仿萤石云视频客户端的时间线展示方式,提供用户友好的时间浏览体验。在这...
根据坐标,时间段算出,日出日落作息时间表,并转换为16进制,存入本地。经纬度,时间段可自行配置,实测时间相差一分钟内
在Android开发中,创建一个时间轴并实现录像回放片段的功能是一项常见的需求,尤其是在多媒体应用或者数据分析工具中。本文将详细讲解如何利用Canvas绘制时间轴,实现缩放以精确到分钟,并解决左侧时间刻度画不完整...
Android进阶之使用时间戳计算时间差 Android进阶之使用时间戳计算时间差是Android开发中的一项重要技术,主要用于计算两个时间点之间的时间差。这种技术在实际开发中非常常用,例如在聊天记录、日志记录、时效性...
在Android开发中,创建一个可交互的时间轴以及录像片段回放功能是一项常见任务,尤其在数据分析、监控系统或者媒体播放应用中。这个项目涉及到的主要知识点包括`Canvas`绘图、自定义`ScrollView`以及时间轴的精准...
本资源“Android wheel时间控件-IT计算机-毕业设计.zip”提供了一个多年前的Android应用源码示例,对于学习Android编程,尤其是进行毕业设计的学生来说,是一个宝贵的参考资料。 该压缩包中的“wheel时间控件”可能...
可进行农历阳历切换,带年月日时分”,是一个基于Android Studio的开发项目,旨在提供一个用户友好的时间选择界面,不仅支持公历(阳历)日期的选择,还支持农历日期的切换,并且细化到小时和分钟。 首先,我们要...
"Android 圆形时间选择控件"就是一个很好的例子,它允许用户通过类似钟表的方式直观地选择时间。这个自定义View的实现涉及到了Android图形绘制、触摸事件处理以及自定义控件的基本原理。 首先,我们来了解一下...
- **计算角度**:根据当前时间计算小时、分钟和秒针应该指向的角度。由于Android屏幕是顺时针旋转的,你需要考虑这一点。 - **绘制背景**:可以是一个简单的圆形或矩形,也可以是复杂的图案,取决于你的设计。 - ...
在Android开发中,实现日期时间倒计时是一项常见的任务,特别是在构建提醒、计时器或者日程管理类应用时。本篇文章将详细讲解如何在Android中根据用户输入的日期和时间进行倒计时。 首先,我们需要获取用户输入的...
本教程将深入探讨如何在Android中实现一个仿iOS的时间选择控件,该控件允许用户通过点击按钮后弹出的时间选择对话框进行时间选择。 首先,我们需要了解iOS时间选择器的基本原理,它通常被称为"Picker View"或"轮盘...
在Android开发中,时间刻度盘是一种常见的UI组件,它能够帮助用户直观地选择或设置时间,例如小时、分钟或秒钟。本篇文章将深入探讨如何创建一个自定义的时间刻度盘,结合博客“http://blog.csdn.net/footballclub”...
这意味着TimeTasker需要处理时间的计算,确保在倒计时过程中正确地减少分钟和秒,同时考虑到分钟和秒之间的切换。 4. **UI更新**:当TimeTasker更新倒计时值时,需要同步更新UI上的显示。这通常涉及到`TextView`的...
例如,你可以设定15分钟为无操作自动退出的超时时间。当检测到用户离开应用的时间超过这个阈值时,发送一个消息或者调用一个函数来关闭Activity,从而退出程序。 3. **处理退出逻辑** 在收到超时信号后,不要直接...
### Android中获取系统时间 #### 知识点一:使用Time类获取系统时间 在Android开发过程中,有时候我们需要获取当前的系统时间来进行某些操作或显示。对于这种情况,一种较为推荐的做法是利用`Time`类来获取系统...
在Android开发中,应用程序的持续时间通常指的是应用从启动到退出这一过程中的生命周期。这个生命周期包括了各种状态的切换,如活动(Activity)的创建、暂停、恢复和销毁,服务(Service)的启动与停止,以及后台...
- **时间计算**:处理时间滚轮的逻辑,确保小时和分钟在合理的范围内(0-23和0-59)。 4. **样式自定义** 为了使控件更具个性化,我们可以自定义滚轮的样式,如字体大小、颜色、背景等。这可以通过修改`Number...
用户滚动滚轮选择年、月、日、小时和分钟,然后应用可以解析这些值来获取实际的日期或时间对象。 5. **文本滚动**:对于纯文本的选择,`WheelView`同样适用。开发者可以提供一个字符串数组作为数据源,用户滚动选择...