首页 文章 精选 留言 我的

精选列表

搜索[工具库],共10000篇文章
优秀的个人博客,低调大师

JAVA时间格式处理工具

import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date; public class DateUtil { /** * 默认日期格式 */ public static String DEFAULT_FORMAT = "yyyy-MM-dd"; private static final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); private static final SimpleDateFormat formatMs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss"); /** * 格式化日期 * @param date 日期对象 * @return String 日期字符串 */ public static String formatDate(Date date){ SimpleDateFormat f = new SimpleDateFormat(DEFAULT_FORMAT); String sDate = f.format(date); return sDate; } /** * 格式化日期 * @param str 日期对象 * @return String 日期字符串 */ public static Date formatDate(String str){ Date date = null; try{ SimpleDateFormat f = new SimpleDateFormat(DEFAULT_FORMAT); date = f.parse(str); }catch (Exception e){ e.printStackTrace(); } return date; } /** * 获取某年第一天日期 * @param date 账期 * @return Date */ public static String getYearFirst(String date){ Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, Integer.parseInt(date.substring(0, 4))); Date currYearFirst = calendar.getTime(); return formatDate(currYearFirst); } /** * 获取上年第一天日期 * @param date 账期 * @return Date */ public static String getLastYearFirst(String date){ Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, Integer.parseInt(date.substring(0, 4))); calendar.add(Calendar.YEAR, -1); Date currYearFirst = calendar.getTime(); return formatDate(currYearFirst); } /** * 获取某日的前一天日期 * @return Date */ public Date getDaysBefore(String dateString, int days) throws ParseException { DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); Date inputDate = dateFormat.parse(dateString); Calendar cal = Calendar.getInstance(); cal.setTime(inputDate); int dayOfYear = cal.get(Calendar.DAY_OF_YEAR); cal.set(Calendar.DAY_OF_YEAR, dayOfYear - days); return cal.getTime(); } /** * 获取某月上一个月份 * @return Date */ public Date getMonthsBefore(String dateString, int months) throws ParseException { DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); Date inputDate = dateFormat.parse(dateString); Calendar cal = Calendar.getInstance(); cal.setTime(inputDate); int monthOfYear = cal.get(Calendar.MONTH); cal.set(Calendar.MONTH, monthOfYear - months); return cal.getTime(); } /** * 获取某月第一天日期 * @return Date */ public Date getFisrtDayOfMonth(String dateString) throws ParseException { DateFormat dateFormat = new SimpleDateFormat("yyyyMM"); Date inputDate = dateFormat.parse(dateString); Calendar cal = Calendar.getInstance(); cal.setTime(inputDate); int firstDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH); cal.set(Calendar.DAY_OF_MONTH, firstDay); return cal.getTime(); } /** * 获取某月最后一天日期 * @return Date */ public Date getLastDayOfMonth(String dateString) throws ParseException { DateFormat dateFormat = new SimpleDateFormat("yyyyMM"); Date inputDate = dateFormat.parse(dateString); Calendar cal = Calendar.getInstance(); cal.setTime(inputDate); int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); cal.set(Calendar.DAY_OF_MONTH, lastDay); return cal.getTime(); } /** * 获取最后一个月的第一天日期 * @return Date */ public static String getLastMonthFirstDay() { Calendar cal_1 = Calendar.getInstance(); cal_1.add(Calendar.MONTH, -1); cal_1.set(Calendar.DAY_OF_MONTH, 1); String firstDay = format.format(cal_1.getTime()); System.out.println("-----1------firstDay:" + firstDay); return firstDay; } /** * 获取最后一个月最后一天日期 * @return Date */ public static String getLastMonthlastDay() { Calendar cale = Calendar.getInstance(); cale.set(Calendar.DAY_OF_MONTH, 0); String lastDay = format.format(cale.getTime()); System.out.println("-----2------lastDay:" + lastDay); return lastDay; } /** * 获取当前月第一天日期 * @return Date */ public static String getCurrentMonthFirstDay() { Calendar c = Calendar.getInstance(); c.add(Calendar.MONTH, 0); c.set(Calendar.DAY_OF_MONTH, 1); String first = format.format(c.getTime()); System.out.println("===============first:" + first); return first; } /** * 获取当前月最后一天日期 * @return Date */ public static String getCurrentMonthlastDay() { Calendar ca = Calendar.getInstance(); ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)); String last = format.format(ca.getTime()); System.out.println("===============last:" + last); return last; } /** * 获取当前年份第一天日期 * @return Date */ public static Date getCurrYearFirst() { Calendar currCal = Calendar.getInstance(); int currentYear = currCal.get(Calendar.YEAR); return getYearFirst(currentYear); } /** * 根据传入的参数获取该年的第一天 * @return Date */ public static Date getCurrYearFirst(String dateString) throws ParseException { DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Date inputDate = dateFormat.parse(dateString); Calendar cal = Calendar.getInstance(); cal.setTime(inputDate); int currentYear = cal.get(Calendar.YEAR); return getYearFirst(currentYear); } /** * 根据传入的参数获取该年月 * @return Date */ public static String getMonth(String dateString) throws ParseException { DateFormat dateFormat = new SimpleDateFormat("MM"); Date inputDate = dateFormat.parse(dateString); Calendar cal = Calendar.getInstance(); cal.setTime(inputDate); return formatDate(cal.getTime()); } /** * 获取当前年份最后一天 * @return Date */ public static Date getCurrYearLast() { Calendar currCal = Calendar.getInstance(); int currentYear = currCal.get(Calendar.YEAR); return getYearLast(currentYear); } /** * 根据传入的参数获取该年 * @return Date */ public static Date getYearFirst(int year) { Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, year); Date currYearFirst = calendar.getTime(); return currYearFirst; } /** * 根据传入的参数获取该年 * @return Date */ public static Date getYearLast(int year) { Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(Calendar.YEAR, year); calendar.roll(Calendar.DAY_OF_YEAR, -1); Date currYearLast = calendar.getTime(); return currYearLast; } /** * 根据传入的参数获取该年月 * @return Date */ public static String getCurrentYear(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); Date date = new Date(); return sdf.format(date);} /** * 根据传入的参数获取该年月 * @return Date */ public static String getLastYear() { Calendar date = Calendar.getInstance(); date.add(Calendar.YEAR, -1); String year = String.valueOf(date.get(Calendar.YEAR)); return year; } /** * 现在时间+6个月与next_time比较 * @return */ public static String getStaleDated(){ SimpleDateFormat sdfTimeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss"); Date date= new Date(); Calendar cd = Calendar.getInstance(); cd.setTime(date); cd.add(Calendar.MONTH, 6); date=cd.getTime(); String stale_dated = sdfTimeStamp.format(date); return stale_dated; } /** * 获取当前时间 * @return */ public static String currentDatetime(){ SimpleDateFormat tempDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String datetime = tempDate.format(new java.util.Date()); return datetime; } /** * 获取当前时间 * * @return */ public static String getYyMmtime() { SimpleDateFormat tempDate = new SimpleDateFormat("yyyy-MM"); String datetime = tempDate.format(new java.util.Date()); return datetime; } /** * 日期计算 * @param date * @param type * @param number * @return */ public static String calculateDate(String date,String type,int number){ try{ // SimpleDateFormat sdfTimeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss"); SimpleDateFormat sdfTimeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //String create_time = sdfTimeStamp.format(new Date()); Date tmpDate = sdfTimeStamp.parse(date); Calendar cd = Calendar.getInstance(); cd.setTime(tmpDate); if(type.equals("m")){ cd.add(Calendar.MONTH, number); }else if (type.equals("d")){ cd.add(Calendar.DAY_OF_MONTH, number); }else { return "type is unknown"; } tmpDate = cd.getTime(); String dateRuslt = sdfTimeStamp.format(tmpDate); return dateRuslt; }catch(Exception ex){ return "calculate failed"; } } public static Date getDateByStr(String string){ //String string = "2016-10-24 21:59:06"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date =null; try{ date = sdf.parse(string); System.out.println(sdf.parse(string)); }catch (Exception e){ e.printStackTrace(); } return date; } public static String getStrByDate(Date date) { //String string = "2016-10-24 21:59:06"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateTime = null; try { dateTime = sdf.format(date); } catch (Exception e) { e.printStackTrace(); } return dateTime; } public static String getUpdateTime(){ //当前时间重写更新时间 SimpleDateFormat sdfTimeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss"); String update_time = sdfTimeStamp.format(new Date()); return update_time; } public static void main(String[] args) throws ParseException { DateUtil dateTest = new DateUtil(); // DateFormat df = new SimpleDateFormat("yyyyMMdd"); // Date before7Day = dateTest.getDaysBefore("20140301", 7); // System.out.println(df.format(before7Day)); // Date testFirstDay = dateTest.getLastDayOfMonth("201407"); // System.out.println(df.format(testFirstDay)); // Date testBeforeMonth = dateTest.getMonthsBefore("20140712", 12); // System.out.println(df.format(testBeforeMonth)); // DateFormat df2 = new SimpleDateFormat("yyyyMM"); // Date getFisrtDayOfMonth = dateTest.getFisrtDayOfMonth("201407"); // System.out.println(df2.format(getFisrtDayOfMonth)); System.out.println(getStaleDated()); // System.out.println(formatDate(getCurrYearLast()));// String stObj="2016-3-21";// String[] timeDay = stObj.split("-");// System.out.println(timeDay[1]); } }

优秀的个人博客,低调大师

关于Facebook iOS UI 工具ComponentKit简介

在 iOS 上面开发界面,需要创建视图、配置界面、视图分层等等很多步骤,也就不可避免的需要书写 N 多的代码。这还仅仅是界面设计,除此之外,完成 controllers 的回调、控制内部事务在界面上的显示效果、界面的操控和内部事务的联系等等多方面的事情都需要手动解决。即便是界面很简单的 App,如果存在这种复杂的双向数据流的关系,那么代码也会变得很复杂很容易出错。Qt 的信号、槽和 iOS 的 Target-Action 机制其实也是很容易实现这种双向数据流的关系,但是没有办法解决界面和事务之间的联系,也有很多其他的问题:性能、测试等。 这些问题曾经困扰了我们多年。News Feed 是有着复杂的列表样式外观的 iOS 软件,由许多的 Row Type 组成,每一个 Row 都有各种各样不同的很烦的界面样式和交互方式,这个就很坑了。每次维护这个东西都像是在清理厕所,尤其是它的功能还在不断增加,它的代码在不断变多,版本迭代速度快到你都没办法直到每天都到底增添了什么新代码,上司还要拿着报告说“你这个软件太慢了,影响用户体验,给你三个小时把这个 App 的速度提高 80%”。 为了解决这一挑战性的问题,我们从自己的 ReactJS 得到启发,把很多具体的东西抽象出来,做出一个功能性的、响应式编程模型的 iOS 原生 UI 框架 ComponentKit,目前 News Feed 在应用这个框架。 ComponentKit 简介 ComponentKit 使用功能性和声明性(declarative)的方法来进行创建界面,和以往不同的是,ComponentKit 使用单向数据流的形式从 不可变的模型 映射到不可变的组件来确定视图的显示方式。ComponentKit 的 declarative 看上去和 declarative UI(QML) 差不多,其实差得远。QML 更偏向于 UI 设计的描述性,而 ComponentKit 则是做好基本 UI 和事件之间的联系,让事件设计和 UI 设计可以分开单独完成。 内在决定外在,组件的功能和内部的层次决定了用户界面该如何规划,界面的规划决定了 UI Kit 的元素层次结构的设计。 传统做法的结果是大部分时间都被浪费在 UI 该如何实现,ComponentKit 却可以让你把时间都用在在 UI 该怎么设计上面。 例如,传统的 iOS 开发中,为了开发一个带有 header、text 和 footer 的视图,需要以下步骤: 分别创建 header 视图、text 视、footer 视图的实例 将三个视图添加为 container 的子视图 添加约束条件,让每个视图和 container 的宽度相同 添加更多的约束条件,确保每个视图的摆放位置 但是 ComponentKit 不一样,ComponentKit 是一种描述性的开发包:你只需要提供你希望得到什么便能得到什么,而不和传统的 iOS 开发一样,再去一个一个地创建视图、修改视图样式、添加视图、添加约束条件。如图所示,想要得到这个布局,只需要使用描述性的语言描述“我想要一个 header 组件,一个 text 组件,一个 footer 组件,他们的宽度相同,从上到下排列在一起”。单单从这点来看,和 QML 相比,ComponentKit 更类似于 Bootstrap:提供已经完成的组件,你只需要决定组件如何摆放,便可轻松地开发出 UI 界面。 ComponentKit 已经完全把如何渲染 UI 的事情抽象出来,程序员完全可以不去考虑具体是如何实现渲染的,也不用去考虑界面渲染该如何优化。ComponentKit 使用后台线程进行界面布局,也实现了智能组件重用,你完全可以不去考虑界面导致的内存泄露问题。ComponentKit 不仅仅可以极大地提高开发效率,界面响应速度和软件的运行效率也会有极大地提升。 News Feed 移植到 ComponentKit ComponentKit 极大地提升了 News Feed 的 UI 响应速度和稳定性,也让整个软件的内部编码更容易理解。ComponentKit 达到了如下的目标: 减少了 70% 的界面渲染代码,麻麻再也不用担心我每次去维护之前都要看那本又臭又长的手册然后花一上午的时间去理解那个错综复杂的布局了。 显著地提高了滑屏的性能。ComponentKit 消除了许多的 container视图,尽力将所有的视图结构化简。更简洁的视图结构意味着界面的渲染性能和执行效率更高。 提高测试覆盖率。ComponentKit 对于 UI 模块化的设计保证了每一部分都可以被分离开来单独进行测试。再加上 snapshot tests,我们现在几乎已经可以对 News Feed 的所有部分都进行测试了。 引入了 ComponentKit 之后,我们能够维护更少的代码,有更少的 bug 需要修复,有更大的测试覆盖率:我们现在可以有更多的时间做羞羞的事情了 ComponentKit 已经在生产环境的 News Feed 上用了六个月,我们觉得可以一直用下去。现在将 ComponentKit 开源,让整个 iOS 开发者社区的人都有 Facebook 的生产效率,也都能和 Facebook 一样做出高性能的 App。很希望你也能在你的开发环境中使用 ComponentKit,然后给我们反馈。 我们重新定义了如何在 iOS 上开发界面,希望你也能用 ComponentKit 开发出更优雅的 App。 快速入门 ComponentKit 已经在 CocoaPods 中可用了,只需要在 Podfile 添加如下代码即可: pod 'ComponentKit', '~> 0.9' pod try ComponentKit

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册