Android 笔记:计算当前日期时间前后几天的封装方法

简介: Android 笔记:计算当前日期时间前后几天的封装方法

在开发过程中,需要获取某个时间点一个月或若干个月前的时间,便单独封装了方法,在博客中记录下来,以便大家使用。

两个方法的传参 Data 是当前时间,day是你需要推后或者提前的天数,第二个是String转换Data类型的,如果后台返回的是String类型的话,可以转换Data类型.


/**
 * 得到几天前的时间
 * @param d
 * @param day
 * @return */
 public static Date getDateBefore(Date d,int day){
    Calendar now =Calendar.getInstance();
    now.setTime(d);
    now.set(Calendar.DATE,now.get(Calendar.DATE)-day);
    return now.getTime();
}
/**
 * 得到几天后的时间
 * @param d
 * @param day
 * @return */
  public static Date getDateAfter(Date d,int day){
    Calendar now =Calendar.getInstance();
    now.setTime(d);
    now.set(Calendar.DATE,now.get(Calendar.DATE)+day);
    return now.getTime();
}
/**
 * String   转 Date;
 * @param str
 * @return */
  public static Date StringToDate(String str){
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");//小写的mm表示的是分钟
    Date date= null;
    try {
        date = sdf.parse(str);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return date;
}

最后顺便附上Data转String的方法

/**
 * String   转 Date;
 * @param str
 * @return */
 public static Date StringToDate(String str){
    //小写mm表示的是分钟
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
    Date date= null;
    try {
        date = sdf.parse(str);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return date;
}

大家可根据实际需要进行修改代码。


目录
相关文章
|
2天前
|
JavaScript 前端开发 Java
FFmpeg开发笔记(四十七)寒冬下安卓程序员的几个技术转型发展方向
IT寒冬使APP开发门槛提升,安卓程序员需转型。选项包括:深化Android开发,跟进Google新技术如Kotlin、Jetpack、Flutter及Compose;研究Android底层框架,掌握AOSP;转型Java后端开发,学习Spring Boot等框架;拓展大前端技能,掌握JavaScript、Node.js、Vue.js及特定框架如微信小程序、HarmonyOS;或转向C/C++底层开发,通过音视频项目如FFmpeg积累经验。每条路径都有相应的书籍和技术栈推荐,助你顺利过渡。
13 3
FFmpeg开发笔记(四十七)寒冬下安卓程序员的几个技术转型发展方向
|
6天前
|
编解码 API 开发工具
Android平台轻量级RTSP服务模块二次封装版调用说明
本文介绍了Android平台上轻量级RTSP服务模块的二次封装实践,旨在简化开发流程,让开发者能更专注于业务逻辑。通过`LibPublisherWrapper`类提供的API,可在应用中轻松初始化RTSP服务、配置视频参数(如分辨率、编码类型)、启动与停止RTSP服务及流发布,并获取RTSP会话数量。此外,还展示了如何处理音频和视频数据的采集与推送。最后,文章提供了从启动服务到销毁资源的完整示例,帮助开发者快速集成实时流媒体功能。
|
1月前
|
Android开发
Android面试题之View的invalidate方法和postInvalidate方法有什么区别
本文探讨了Android自定义View中`invalidate()`和`postInvalidate()`的区别。`invalidate()`在UI线程中刷新View,而`postInvalidate()`用于非UI线程,通过消息机制切换到UI线程执行`invalidate()`。源码分析显示,`postInvalidate()`最终调用`ViewRootImpl`的`dispatchInvalidateDelayed`,通过Handler发送消息到UI线程执行刷新。
27 1
|
27天前
|
消息中间件 调度 Android开发
Android经典面试题之View的post方法和Handler的post方法有什么区别?
本文对比了Android开发中`View.post`与`Handler.post`的使用。`View.post`将任务加入视图关联的消息队列,在视图布局后执行,适合视图操作。`Handler.post`更通用,可调度至特定Handler的线程,不仅限于视图任务。选择方法取决于具体需求和上下文。
27 0
|
1月前
|
Android开发
android 开发中的日期加减处理
android 开发中的日期加减处理
29 0
|
2月前
|
XML Android开发 数据格式
Android AppCompatActivity 方法详解
Android AppCompatActivity 方法详解
44 0
|
2月前
|
Java API Android开发
技术经验分享:Android源码笔记——Camera系统架构
技术经验分享:Android源码笔记——Camera系统架构
32 0
|
2月前
|
缓存 大数据 Android开发
Android 巧用putBinder方法传递大文件
Android 巧用putBinder方法传递大文件
48 0
|
3月前
|
Android开发
【通讯录教程】苹果安卓鸿蒙系统通用,如何大批量导入手机号码到手机的通讯录,下面教你方法,只需1分钟搞定几万个号码的导入手机电话本
该文介绍了一种快速批量导入手机通讯录的方法,适用于处理大量手机号的需求,如微商管理、客户资料整理等。在QQ同步助手开始收费后,提供了免费的替代方案。步骤包括:下载批量导入软件(链接提供腾讯云盘和百度网盘地址),清空通讯录(非必需),制作符合格式的通讯录文件,并按操作系统(苹果、安卓或鸿蒙)进行导入。整个过程只需1分钟,简便快捷。
|
2月前
|
Android开发 Kotlin
kotlin安卓开发【Jetpack Compose】:封装SnackBarUtil工具类方便使用
GPT-4o 是一个非常智能的模型,比当前的通义千问最新版本在能力上有显著提升。作者让GPT开发一段代码,功能为在 Kotlin 中使用 Jetpack Compose 框架封装一个 Snackbar 工具类,方便调用
109 0