1 Date类
在编写程序的时候,不可避免的要用到日期,要进行日期方面的处理。在Java中,提供了一个用于日期(包括时间)处理的类Date,这个类位于java.util包中。这个类在JDK1.0开始就存在了。下面我们来看一下如何使用java.util.Date类来处理日期。
虽然在Date中定义了6个构造器,但是,其中的四个已经变成了Deprecated了,也就是说,这四个构造器已经不被推荐使用了。剩下的两个构造器分别为:
Date():生成一个代表当前时间的日期对象
Date(long date):根据指定的参数生成一个日期对象,其中的long类型的参数表示从格林威治标准时间(Greenwich Mean Time,GMT)1970年1月1日 00:00:00秒以来的毫秒数。
和构造器的命运一样,在Date中的大部分方法,到现在已经被标为Deprecated了,这也可以看出JDK1.0设计上存在的诸多缺陷。
下面是一些常用的未被Deprecated的方法:
boolean after(Date when):测试该日期是否比参数中指定的的日期早
boolean before(Date when):测试该日期是否比参数中指定的日期迟
long getTime():得到从格林威治标准时间1970年1月1日 00:00:00到这个Date对象所表示的日期之间的相隔的时间,单位为毫秒
void setTime(long date):设置这个Date对象表示的时间,参数为从格林威治标准时间1970年1月1日 00:00:00到需要设置的日期之间的毫秒数
2 Calendar类
正是因为Date设计上的缺陷,所以在JDK1.1以后,基本上就不使用这个类来处理日期和时间了,取而代之的是一个更加成熟完善的类Calendar,它也位于java.util包中。
Calendar是一个抽象类,用来表示日历的概念。因为它是一个抽象类,所以我们不能使用它的构造器来直接实例化它。
但是,在这个类中,提供了很多的静态方法getInstance(),可以让我们轻松的获得Calendar类型的对象(准确的说,这个方法获得的是一个Calendar的子类GregorianCalendar的实例,GregorianCalendar表示的是我们通常所说的阳历),我们首先来看这些方法:
Calendar getInstance():获得一个默认时区、默认地点(Locale)的Calendar对象。
Calendar getInstance(Locale locale):获得一个默认时区,指定地点(Locale)的Calendar对象
Calendar getInstance(TimeZone tz):获得一个指定时区,默认地点(Locale)的Calendar对象
Calendar getInstance(TimeZone tz,Locale locale):获得一个指定时区,指定地点(Locale)的Calendar对象
当然,也可以使用GregorianCalendar的构造器来获得对应的GregorianCalendar实例。
下面我们来看一下Calendar的常用的方法:
int add(int field,int value):改变对应的field的值,注意在这里之所以是“改变”而不是“增加”,是因为除了增加外,还可以减少对应field的值,只要给它一个负值就可以了。另外也没有对应的minus()方法或者substract()方法进行减少的运算,这个方法有3点需要注意:
当被修改的field超出它所能接受的值的范围时,比它大的field将会自动修正成可接受的值,这有点类似于我们做算术运算时候的“进位”:当个位为9的时候,再加上大于等于1的值,将会往十位进1。但是和算术运算略有不同的是,不用的field发生进位的“进制”不同,如日期超过28(2月份)、29(闰2月)、30、31都可能,而分钟是60等等。例如,在表示2006-5-31的Calendar对象上调用add(Calendar.DAY_OF_MONTH,2),将会得到一个表示2006-6-2的值,而当在它上面调用add(Calendar.DAY_OF_MONTH,42)的时候,将会得到表示2006-7-11的值。
当field的值发生改变的时候,比它小的field的值也可能会发生改变,因为当field发生改变的时候,它的最大值和最小值均可能发生改变,此时,更小的field中的值会调整到尽可能和所期望的值靠近的一个值。例如,在表示2006-5-31日的Calendar对象上调用add(Calendar.MONTH,1),除了月份会变成6月份以外,因为6月没有31日,所以日期这个field也会自动调整到30日
Calendar上调用add()方法的时候,将会马上改变Calendar的毫秒数和所有field
void roll(int field,int value):和add()方法类似,区别在于,即使加上value后对应的field值已经超出了它所能表示的最大范围,也不会改变更大的field的值
int get(int field):根据指定的field,返回相应的时间值。通常,参数field使用Calendar的静态常量来表示,例如:想得到当前的月份,可以使用方法get(Calendar.MONTH)来获得
int getActualMaximum(int field):获得指定的时间字段(field)所能表示的最大值,例如,如果使用getActualMaximum(Calendar.MONTH),将会得到一个11的值,表示月份最大值为11,注意,在Calendar中,月份是从0开始计算的,也就是说,1月份对应的数值是0,12月份对应的数值是11
int getActualMinimum(int field):获得指定的时间字段(field)所能表示的最小值,例如,如果使用getActualMinimum(Calendar.DAY_OF_WEEK),将会得到一个1的值,表示星期的最小值为1
int getFirstDayOfWeek():获得表示星期的第一天的数值
java.util.Date getTime():获得一个这个Calendar所表示的日期的对应的Date类型的值
long getTimeInMillis():获得以毫秒表示的时间值
void set(int field,int value):给一个对应的字段field设置一个值,例如,将日期设置成25号,可以调用set(Calendar.DAY_OF_MONTH,25)
void set(int year,int month,int day):设置年、月、日,这里需要注意的是月份是从0开始的
void set(int year,int month,int day,int hour,int minute):设置年、月、日、时、分
void set(int year,int month,int day,int hour,int minute,int secondd):设置年、月、日、时、分、秒
void setTime(Date time):将Calendar对象的当前时间设置成Date表示的值
void setTimeInMillis(long time):设置Calendar对象的当前时间为指定time的值
提示:
set()方法和add()/roll()方法有一个重要的不同点:set()方法除了将相关的field的值改成新的值外,它会设置一个内部成员变量,用于标示Calendar字段的改变,尽管Calendar字段f是立即更改的,但是它所代表的时间值却不会马上改变,而是会在下次调用get()/getTime()/getTimeInMillis()/add()/roll()时才会重新计算。
下面我们来看一些Calendar的例子。
import java.util.*;
public class TestCalendar {
public static void main(String[] args) {
Calendar cal1 = Calendar.getInstance();
cal1.set(2006, 5, 30, 0, 0, 0); // 2006-6-30
cal1.add(Calendar.DAY_OF_MONTH, 32);
System.out.println("月份:" + cal1.get(Calendar.MONTH));
System.out.println("日期:" + cal1.get(Calendar.DAY_OF_MONTH));
}
}
这个程序将会打印出如下的信息:
月份:7
日期:1
3 TimeZone类
在地理上,地球被划分为24个时区,中国北京时间属于东八区,而程序中对于时间的默认实现是以格林威治时间为标准,这样就产生了八个小时的时差,所以为了让你的程序更加通用,我们必须明确说明该时间是哪个时区的时间。在Java中,有一个类TimeZone用于表示时区的概念。
TimeZone是一个抽象类,它表示的是一个时区的概念。我们可以使用这个抽象类上面的静态方法getDefault()来获得程序所运行机器上的默认时区,这个默认时区通常可以通过修改操作系统的相关配置来调整。
在TimeZone上还有一些有用的方法,我们可以通过它们来获得一些相关的信息:
String[] getAvailableIDs()/getAvailableIDs(int offset):获得所有有效的时区ID。时区ID是用于标示一个时区的值,例如,北京时间的ID其实是Asia/Shanghai。参数offset表示偏移格林威治时间的时差。
String getID():获得对应此TimeZone的ID。
String getDisplayName():获得对应时区的显示名称,例如,北京时间的显示名称为“中国标准时间”。
我们来看一个TimeZone的例子。
import java.util.*;
public class TestTimeZone {
public static void main(String[] args) {
TimeZone tz = TimeZone.getDefault();
System.out.println("ID是:" + tz.getID());
System.out.println("显示名称是:" + tz.getDisplayName());
}
}
这个程序中,我们首先使用TimeZone的静态方法getDefault()获得表示当前操作系统得默认时区,然后使用getID()和getDisplayName()来分别获得这个时区的ID和显示名。
编译运行这个程序可以得到如下输出:
ID是:Asia/Shanghai
显示名称是:中国标准时间
相关推荐
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
【项目资源】: 适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
# 基于Python的KMeans和EM算法结合图像分割项目 ## 项目简介 本项目结合KMeans聚类和EM(期望最大化)算法,实现对马赛克图像的精准分割。通过Gabor滤波器提取图像的多维特征,并利用KMeans进行初步聚类,随后使用EM算法优化聚类结果,最终生成高质量的分割图像。 ## 项目的主要特性和功能 1. 图像导入和预处理: 支持导入马赛克图像,并进行灰度化、滤波等预处理操作。 2. 特征提取: 使用Gabor滤波器提取图像的多维特征向量。 3. 聚类分析: 使用KMeans算法对图像进行初步聚类。 利用KMeans的聚类中心初始化EM算法,进一步优化聚类结果。 4. 图像生成和比较: 生成分割后的图像,并与原始图像进行比较,评估分割效果。 5. 数值比较: 通过计算特征向量之间的余弦相似度,量化分割效果的提升。 ## 安装使用步骤 ### 假设用户已经下载了项目的源码文件 1. 环境准备:
HCIP第一次作业:静态路由综合实验
【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
内容概要:本文详细介绍了Johnson-SU分布的参数计算与优化过程,涵盖位置参数γ、形状参数δ、尺度参数ξ和伸缩参数λ的计算方法,并实现了相应的Python代码。文中首先导入必要的库并设置随机种子以确保结果的可复现性。接着,分别定义了四个参数的计算函数,其中位置参数γ通过加权平均值计算,形状参数δ基于局部均值和标准差的比值,尺度参数ξ结合峰度和绝对偏差,伸缩参数λ依据偏态系数。此外,还实现了Johnson-SU分布的概率密度函数(PDF),并使用负对数似然函数作为目标函数,采用L-BFGS-B算法进行参数优化。最后,通过弹性网络的贝叶斯优化展示了另一种参数优化方法。; 适合人群:具有Python编程基础,对统计学和机器学习有一定了解的研究人员或工程师。; 使用场景及目标:①需要对复杂数据分布进行建模和拟合的场景;②希望通过优化算法提升模型性能的研究项目;③学习如何实现和应用先进的统计分布及优化技术。; 阅读建议:由于涉及较多数学公式和编程实现,建议读者在阅读时结合相关数学知识,同时动手实践代码,以便更好地理解和掌握Johnson-SU分布及其优化方法。
TSP问题的3种智能优化方法求解(研究生课程《智能优化算法》结课大作业).zip
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
自动发布Java项目(Tomcat)Shell脚本
# 基于webpack和Vue的前端项目构建方案 ## 项目简介 本项目是基于webpack和Vue构建的前端项目方案,借助webpack强大的打包能力以及Vue的开发特性,可用于快速搭建现代化的前端应用。项目不仅完成了基本的webpack与Vue的集成配置,还在构建速度优化和代码规范性方面做了诸多配置。 ## 项目的主要特性和功能 1. 打包功能运用webpack进行模块打包,支持将scss转换为css,借助babel实现语法转换。 2. Vue开发支持集成Vue框架,能使用Vue单文件组件的开发模式。 3. 构建优化采用threadloader实现多进程打包,cacheloader缓存资源,极大提高构建速度开启热更新功能,开发更高效。 4. 错误处理与优化提供不同环境下的错误映射配置,便于定位错误利用webpackbundleanalyzer分析打包体积。
Hands-On Large Language Models - Jay Alammar 袋鼠书 《动手学大语言模型》PDF
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
# 基于Arduino Feather M0和Raspberry Pi的传感器数据采集与监控系统 ## 项目简介 本项目是一个基于Arduino Feather M0和Raspberry Pi的传感器数据采集与监控系统。系统通过Arduino Feather M0采集传感器数据,并通过WiFi将数据传输到Raspberry Pi。Raspberry Pi运行BalenaOS,集成了MySQL、PHP、NGINX、Apache和Grafana等工具,用于数据的存储、处理和可视化。项目适用于环境监测、物联网设备监控等场景。 ## 项目的主要特性和功能 1. 传感器数据采集使用Arduino Feather M0和AM2315传感器采集温度和湿度数据。 2. WiFi数据传输Arduino Feather M0通过WiFi将采集到的数据传输到Raspberry Pi。
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
【项目资源】: 适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
# 基于Arduino的WiFi按钮项目 ## 一、项目简介 本项目是一个基于ESP8266芯片的Arduino项目,主要实现WiFi连接、电压检测、LED灯控制以及向服务器发送POST请求等功能。通过简单的按钮操作,可以实现与服务器通信并获取相关信息,同时能检测电池电压并提示用户。 ## 二、项目的主要特性和功能 1. WiFi连接项目能够自动连接到指定的WiFi网络。 2. 电压检测通过ADC(模数转换器)检测电池电压,并在电压低于阈值时发出警告。 3. LED灯控制通过控制LED灯的亮灭来提示用户不同的状态信息(如连接成功、电压低等)。 4. 服务器通信项目可以向指定的服务器发送POST请求并处理返回的HTTP响应。 ## 三、安装使用步骤 1. 环境准备确保已安装Arduino IDE和ESP8266插件。 2. 下载源码下载项目的源码文件并解压。 3. 打开项目在Arduino IDE中打开解压后的main.cpp文件。
该资源为scipy-0.10.1-cp26-cp26mu-manylinux1_x86_64.whl,欢迎下载使用哦!
计算机毕业设计;计算机毕设;Java毕业设计;小程序毕业设计;企业、旅游、党建、学校、人事、酒店、民宿、预约、考试、外卖、点餐、外贸、宠物、图书、销售、商城、就业、助农、仓储、交易、美食、博客、婚庆、二手、养老、医院、医疗、药品、招聘、考勤、宿舍、物流、租赁、公益等