总结一下自己在Android开发中遇到的时间处理

Android秒表应用开发教程 Android特有的一些时间API,如java.time包中的类,为开发者提供了更多现代的时间处理工具。示例代码:逻辑分析:上述代码使用了和来获取并格式化当前时间。这对于需要高精度时间显示的秒表应用尤其有用。Android权限系统用于控制应用可以访问的设备资源和信息。从Android 6.0开始,引入了动态权限申请机制,即在运行时请求用户授权。权限分为两种类型:普通权限:如访问网络等,系统默认授予。危险权限:如读取存储、打电话等,需要用户明确授权。 阅读详情
    1. //获取当前时间 如果****-01-01不是周一从第一个周一开始计算
    2. //设置每周的第一天为周一
    3. cal.setFirstDayOfWeek(Calendar.MONDAY);
    4. //设置每周从周一开始
    5. cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
    6. //设置每周最少为7天
    7. cal.setMinimalDaysInFirstWeek(7);
    8. // 设置年度为指定的年
    9. cal.set(Calendar.YEAR, cal.get(cal.YEAR));
    10. //设置判断时间
    11. cal.setTime(new Date());
    12. //根据情况返回日期为当前第几个周
    13. return cal.get(Calendar.WEEK_OF_YEAR);

    1. //获取当前周的所有日期
    2. cal.set(Calendar.WEEK_OF_YEAR, week);
    3. while (cal.get(Calendar.DAY_OF_WEEK) != FIRST_DAY) {
    4. cal.add(Calendar.DATE, -1);
    5. }
    6. for (int i = 0; i < 7; i++) {
    7. list.add(cal.getTime().getTime());
    8. cal.add(Calendar.DATE, 1);
    9. }
    1. //区别第一种如果****-01-01不是周一的时候回从去年的最后一个周一开始计算
    2. SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
    3. Calendar cal = Calendar.getInstance();
    4. System.out.println(cal.get(Calendar.WEEK_OF_YEAR));
    5. cal.set(Calendar.WEEK_OF_YEAR, 52);
    6. while (cal.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY) {
    7. cal.add(Calendar.DATE, -1);
    8. }
    9. for (int i = 0; i < 7; i++) {
    10. System.out.println(sdf.format(cal.getTime()));
    11. cal.add(Calendar.DATE, 1);
    12. }
    1. //计算某月的开始时间和结束时间
    2. Calendar cal = Calendar.getInstance();
    3. cal.set(Calendar.MONTH, 月份);
    4. cal.set(Calendar.DAY_OF_MONTH, 1);
    5. System.out.println(sdf.format(cal.getTime()));
    6. cal.add(Calendar.DAY_OF_MONTH, -1);
    7. Date lastDate = cal.getTime();
    8. cal.set(Calendar.DAY_OF_MONTH, 1);
    9. Date firstDate = cal.getTime();
    10. System.out.println(sdf.format(lastDate)+""+sdf.format(firstDate));
    1. //计算某月所有日期
    2. list.add(sdf.format(dBegin));
    3. Calendar calBegin = Calendar.getInstance();
    4. // 使用给定的 Date 设置此 Calendar 的时间
    5. calBegin.setTime(dBegin);
    6. Calendar calEnd = Calendar.getInstance();
    7. // 使用给定的 Date 设置此 Calendar 的时间
    8. calEnd.setTime(dEnd);
    9. // 测试此日期是否在指定日期之后
    10. while (dEnd.after(calBegin.getTime())) {
    11. // 根据日历的规则,为给定的日历字段添加或减去指定的时间量
    12. calBegin.add(Calendar.DAY_OF_MONTH, 1);
    13. list.add(sdf.format(calBegin.getTime()));
    14. }
    1. /**
    2. * 得到本周周一
    3. *
    4. * @return yyyy-MM-dd
    5. */
    6. public static String getMondayOfThisWeek() {
    7. Calendar c = Calendar.getInstance();
    8. int dayofweek = c.get(Calendar.DAY_OF_WEEK) - 1;
    9. if (dayofweek == 0)
    10. dayofweek = 7;
    11. c.add(Calendar.DATE, -dayofweek + 1);
    12. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    13. return sdf.format(c.getTime());
    14. }
    15. /**
    16. * 得到本周周日
    17. *
    18. * @return yyyy-MM-dd
    19. */
    20. public static String getSundayOfThisWeek() {
    21. Calendar c = Calendar.getInstance();
    22. int dayofweek = c.get(Calendar.DAY_OF_WEEK) - 1;
    23. if (dayofweek == 0)
    24. dayofweek = 7;
    25. c.add(Calendar.DATE, -dayofweek + 7);
    26. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    27. return sdf.format(c.getTime());
    28. }
    1. //当前日期加几天
    2. private String addDate(String date,int day){
    3. try {
    4. Date od=sdf.parse(date);
    5. Date nd=addDete(od, day);
    6. return sdf.format(nd);
    7. } catch (ParseException e) {
    8. e.printStackTrace();
    9. }
    10. return "";
    11. }
    12. public static Date addDete(Date d,long day) throws ParseException {
    13. long time = d.getTime();
    14. day = day*24*60*60*1000;
    15. time+=day;
    16. return new Date(time);
    17. }
    1. //两日期相减得到之间天数(是String格式)
    2. public static int daysBetween(String smdate,String bdate) throws ParseException{
    3. Calendar cal = Calendar.getInstance();
    4. cal.setTime(sdf.parse(smdate));
    5. long time1 = cal.getTimeInMillis();
    6. cal.setTime(sdf.parse(bdate));
    7. long time2 = cal.getTimeInMillis();
    8. long between_days=(time2-time1)/(1000*3600*24);
    9. return Integer.parseInt(String.valueOf(between_days));
    10. }

Linux系统下SAPGUI安装包选择与避坑指南 本文详细介绍了在Linux系统下选择和安装SAPGUI安装包的策略与避坑指南。重点解析了不同版本安装包的关键区别,特别是Linux版必须包含linux-lib.jar和linux64-lib.jar文件,避免误用Mac或Windows版导致的兼容性问题。文章还提供了针对Ubuntu、RHEL等不同Linux发行版的安装实战指南,以及常见报错的解决方案,帮助用户顺利完成SAPGUI的安装与配置。 阅读详情

相关推荐

CAN开发笔记(TI开发者推荐笔记)

查阅了很多资料没有查阅到关于5728芯片CAN模块寄存器的介绍,希望通过本文能给做CAN驱动的后来者有一点参考意义,我也是刚接触CAN模块有些不足请各位多多指正。 由下图所示是CAN模块初始化流程图 首先要开始初始化,设置CAN位时间,然后配置message objects, 完成初始化。 1.开始初始化 首先要控制DCAN_CTL 寄存器,该寄存器是CAN模块的总控制器,很多配置通过...

weixin_44316996的博客 3562

请假两时间的小时数差

/* * 请假两时间的小时数差 */ create PROCEDURE [dbo].[os_vocation_hour] @starttime varchar(20), --开始时间 @endtime varchar(20) --结束时间 AS if(isdate(@starttime)=0 or isdate(@endtime)=0) -...

weixin_30699463的博客 175

跟着团子学SAP CO:揭秘结果分析码在项目结算中的实战应用(一)KKA2/CJ88

本文深入解析了SAP CO模块中结果分析码在项目结算中的核心作用。以KKA2(方法10)和事务代码CJ88为例,详细阐述了如何在项目完工后一次性确认收入的场景下,通过结果分析功能实现收入与成本的精准匹配,将项目成本暂估为在制品,确保各期利润的准确反映。

gamma的博客 685

android 按下返回键 一段时间内两次点击结束程序

按下返回键,一段时间内点击两次即可结束程序

这是一个开始认识世界的博客 863

win11怎么安装dosbox和masm来运行汇编程序(小白,萌新篇)

一文教会你如何部署dosbox和masm环境

m0_73279193的博客 4700

读取rosbag中的IMU信息并转为tum格式的csv和txt

rostopic -b xx.bag -p /xx > xxx.txt #for euroc structvio import os, sys,re,csv name="street_07" # basedir="/media/yinjie/2498AF1F98AEEF0C/adataset/15results/imu_bagtxt/"+name+'.txt' # txtdir="/media/yinjie/2498AF1F98AEEF0C//adataset/15results/imu_o

qq_42928559的博客 1919

android 如何修改默认时间格式

1. 修改文件alps\frameworks\base\packages\SettingsProvider\res\values\defaults.xml 增加代码24 红色标记表示24小时制,也可以改为12(12小时制) 2. 修改文件 alps\frameworks\base\packages\SettingsProvider\src\com\android\providers\set

曹浩洋的专栏 842

实现两端固支梁热力耦合的有限元分析

在本文中,我们将使用Matlab实现两端固支梁的热力耦合有限元分析。我们假设梁的材料是均匀的,梁的截面积为1,长度为1,两端固支,且受到均匀分布的热荷载。接下来,我们需要组装全局刚度矩阵和热传导矩阵。对于两个相邻的元素,它们共享一个节点,因此需要使用连接矩阵将局部矩阵组装成全局矩阵。接下来,我们需要定义元素刚度矩阵和热传导矩阵。然后,我们需要定义载荷向量。然后,我们需要定义边界条件。在这个例子中,梁的两端固支,因此我们需要将两端节点的位移限制为0。最后,我们需要解决线性方程组,得到节点的位移和温度分布。

CyberSparkZ的博客 396

Android日历CalendarView当结束日期小于开始日期依旧绘制处理

如果你还需要“修改选择范围背景色(开始、结束日期背景色跟中间背景颜色不一样)”、“左右滑动切换月份实时显示当前年月”……(如下图)那我可以推荐你看一下另一篇博客:https://blog.youkuaiyun.com/weixin_40420578/article/details/96485028,其实这篇博客内容就是从中抽出来的。 日期选择范围,结束日期小于开始日期时,依旧绘制(修改源码三步骤) 在...

weixin_40420578的博客 965

别再瞎改网络结构了!解决YOLO小目标检测痛点,我用这招把mAP提了15%

本文基于我7年工业PCB缺陷检测、无人机航拍、安防监控项目的一线落地经验,针对YOLO小目标检测最痛的「漏检率高、特征丢失、精度难提升」三大核心问题,拆解出。本文全程配套小目标特征丢失原理图、分块训练流程图、切图前后效果对比图、mAP提升柱状图、多方案性能对比表等可视化内容,从YOLO天生不擅长小目标的底层根源、方案核心原理、可直接复制的代码实现,到工业场景实测验证、新手必踩的10个坑位避坑指南,全链路讲透。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 387

华为OD机试真题2026双机位C卷 Python&JS 语言 实现【主次关联成环警告】

在ICT运维领域,现网运维工程师面向对设备上报的众多告警,往往需要筛选出最主要的告警优先处理,次等级的告警或许为同一个根因导致的告警,处理优先级会放后或者不处理,这样就诞生出主次关联告警的概念。给定一系列告警的主次关联关系,判断是否存在如下情况:

MISAYAONE的博客 269

Android开发中常用的时间处理

本文仅仅简单介绍了获取时间的使用

qq_36451275的博客 543

mjlab MuJoCo 人形机器人强化学习入门教程(一)安装配置使用

mjlab是融合IsaacLab API与MuJoCo物理引擎的强化学习工具,提供轻量级GPU加速仿真方案。当前处于测试阶段,支持Linux系统(推荐)和有限macOS支持。核心优势包括:1)直接集成MuJoCo Warp实现裸机性能;2)保留IsaacLab成熟的RL抽象层;3)简化安装流程。与IsaacLab相比更专注于MuJoCo生态,适合刚体机器人RL研究。文档包含详细安装指南、平台兼容性说明、与IsaacLab的API差异对比及常见问题解答。项目正在积极开发中,欢迎社区贡献和反馈。

2506_90492529的博客 1997

java plusday_Android(Java)日期和时间处理完全解析——使用Gson和Joda-Time优雅地处理日常开发中关于时间处理的......

原创声明: 该文章为原创文章,未经博主同意严禁转载。简介: 对于 Android 和 Java 开发者来说,时间的处理是我们必须掌握的知识。如果你尝试过造时间处理方面的轮子的话,你就会知道,关于时间的处理是一个非常复杂的问题。我们在处理时间时需要把时间转化成能让计算机理解的形式,而Java 8之前的库对日期和时间的支持是非常不理想的。Java 8种提供了全新的时间API供我们使用,这些API在j...

weixin_36450434的博客 646

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Android开发 很常用时间处理工具

1.获取当前系统的毫秒值 /** * 返回当前时间的毫秒值 * * @return */ public static long getDateMilliscond() { return System.currentTimeMillis(); } 2.给定一个时间字符串和其格式,获取其毫秒值 /** * String类型转换为long类型 */ // strTime要转换的String类型的时间 // formatType时间格式 // strTime的时间格式和formatType的

跑路羊崽丶的博客 149

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Android点击触摸时间处理

点击打开链接

wugezi的博客 987

Android开发中获取系统时间的几种种方式

Calendar获取系统时间首先要用Calendar.getInstance()函数获取一个实例,再为该实例设定时区(中国的时区为GMT+8:00),最后使用Calendar.get()函数获取时间的具体信息,如年,月,日,小时,分,秒,星期几。缺点是获得的这些时间信息都是独立的,如果要一起显示的话,还要组装起来凑成一个字符串,稍显麻烦。不过如果只需要单个时间信息,如星期几,这种方法是比较方便的。并且可以根据Calendar.AMPM属性判断当前是AM还是PM(0为AM,1为PM),然后根据需要显示12小时

l970859633的博客 2771

Android 常用开发工具类之 DateUtilsBase (时间处理类)

基本上所有项目都会使用到时间,而一个详细的时间处理类会帮你节省下许多时间处理上的麻烦。 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import j

IT_MR_JIE的博客 552

【Android】Android 开发常用工具类收集

说在前面,以下工具类可以大大的提高安卓开发者的开发效率 1、偏好设置(ShareUtils) import android.content.Context; import android.content.SharedPreferences; /** Content:偏好设置工具类 Actor:韩小呆 ヾ(✿゚▽゚)ノ Time: 15:44 */ public class ShareUtils { public static final String NAME = “config.hxd”;

qq_30885821的博客 1217

Android快速开发工具集合——YUtils,android开发环境搭建

Activity getCurrentActivity() 获得当前栈顶Activity String getCurrentActivityName() 获得当前Activity名字 void start(Class<?> targetActivity) 启动指定Activity 无参 void start(Class<?> targetActivity, Bundle bundle) 启动指定Activity,带Bundle参数(kotlin调用参数可选) voi.

wa2231a的博客 168

Android开发工具系列:Utils工具

1 TimeUtils public class TimeUtils { public static final int YEAR = 0; public static final int MONTH = 1; public static final int DAY = 2; public static final int HOUR = 3; public ...

Vincent的博客 1765

推荐一款高效时间处理库:TimeAgo

推荐一款高效时间处理库:TimeAgo 项目介绍 在Android开发中,我们经常遇到一个问题:如何优雅地展示两个日期之间的时间差?TimeAgo是一款轻量级的开源库,它能帮助你在应用中轻松实现“刚刚”、“2分钟前”、“1小时前”等人性化的时间显示。 项目技术分析 TimeAgo库采用了简洁的API设计,使得集成到你的项目中变得非常简单。它支持ISO和dd/MM/yyyy HH:mm:ss两种日...

gitblog_00082的博客 357

Android 计算两个日期之间相差的天数

Android 计算两个日期之间相差的天数 1.先获取到两个时间点 2.计算相差天数

qq_42898818的博客 3110

Android OkHttp+Retrofit+RxJava搭建网络访问框架

外链图片转存中…(img-FAonY4my-1711900930034)][外链图片转存中…(img-BSXG2DzR-1711900930035)][外链图片转存中…(img-VKl9DCDA-1711900930036)][外链图片转存中…(img-WxXNy8lu-1711900930036)][外链图片转存中…(img-RnPJCERE-1711900930036)][外链图片转存中…(img-r4SwAcCe-1711900930036)]

903

Android快速开发工具集合——YUtils

Android快速开发工具集合——YUtils How to use Step 1 project:build.gradle allprojects { repositories { ... maven { url 'https://jitpack.io' } } } Step 2 app:build.gradle dependenc...

yechaoa 2528

Android开发中常用的工具类整理

关于Android开发中常用的工具类整理,其中包括日志、Toast、网络、像素单位转换、屏幕、App相关、键盘、文件上传下载、加密、时间等工具类,特意分享给大家。希望大家喜欢的话,可以顶顶帖子,让更多人看到,谢谢。 来源 http://wujingchao.net/2015/03/16/android_common_utility_class.html 日志 pa

manzi1224的博客 307
上一篇: 当ListView的item为CheckBox,EditText,Spinner的时候处理滑动数据错乱
下一篇: 刷新listView中的某个Item
fire_nirvana
博客等级 码龄10年 1粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值