运行以下代码,你期望会输出什么?
// 假设现在的时间是11:34:03
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 5);
cal.clear(Calendar.HOUR_OF_DAY);
cal.clear(Calendar.Calendar.SECOND);
System.out.println("h: "cal.get(Calendar.HOUR_OF_DAY) + " ,s: " + cal.get(Calendar.SECOND));
你一定以为会输出h: 0 , s: 0
什么?不是?哪输出的是h: 5 , s: 3
都不是!!!
输出的h: 11 , s: 0
呵呵,难以置信吧?
原来Calender的clear(int)方法并不是清零,
对于HOUR,HOUR_OF_DAY就是返回最原始的值。
其他的可能是清零。
总之,不是一个保险的方法,还是尽量用set(HOUR, 0)这样的方法代替。
相关推荐
Java时间处理:LocalDate与LocalDateTime转换的实战指南与避坑
在Java开发中,日期与时间处理是构建健壮应用的基础。Java 8引入的java.time包提供了全新的日期时间API,其核心设计基于不可变性和清晰的类型划分,旨在解决传统Date和Calendar类的混乱与线程安全问题。理解LocalDate(仅日期)与LocalDateTime(日期时间)的区别与转换原理,对于确保业务逻辑的严谨性至关重要,尤其是在涉及数据库查询、缓存设计、API数据交换和跨时区业务时。本文聚焦于这两个核心类型间的转换操作,深入剖析了在数据库查询、业务逻辑、缓存键设计等典型应用场景下的最
java calendar clear_Java.util.Calendar.clear()
描述所述java.util.Calendar.clear()方法设置给定日历字段valueand此Calendar的时间值未定义。Calendar实现类可以使用默认字段值进行日期和时间计算。声明以下是java.util.Calendar.clear()方法的声明public final void clear(int field)参数field - 要设置为undefined的日历字段。返回值此方法...
Java Set底层原理与生产级选型指南
Set是Java集合框架中表达‘唯一性’与‘成员关系’的核心抽象,其设计根植于数学集合概念,通过哈希表、红黑树、跳表等数据结构实现不同行为契约。理解hashCode与equals协同机制、fail-fast迭代器原理、以及各实现类(HashSet/TreeSet/LinkedHashSet/ConcurrentSkipListSet)的时间复杂度与内存特性,是避免线上contains失效、排序异常、并发不一致等高频问题的关键。在电商去重、实时风控、日志窗口统计等典型场景中,选型错误可导致性能下降十倍甚至引发
关于Calendar用法的一些总结
Calendar是一个抽象类,主要用来操作日历时间字段。在java.util.Calendar包中,Calendar在开发中基本都会使用得到,这里对经常使用到的做个总结,也可能有遗漏,遇到再补,慢慢完善。 常用的方法 abstract void add(int field, int amount) 此方法添加或减去指定的时间量,以给定日历字段,基于日历的规则
OpenAI Agents SDK + Modal Sandbox 实战:构建稳定可控的 AI Agent 运行环境
AI Agent 是一种具备自主规划、工具调用与多轮推理能力的智能体系统,其核心在于状态管理、长时执行与外部系统集成。不同于传统无状态 API,Agent 运行依赖进程级上下文保持、中间状态持久化及资源弹性伸缩。Modal Sandbox 以轻量容器沙箱形式,原生支持长时运行、GPU 加速、Volume 持久卷与细粒度资源声明,完美匹配 Agent 的生命周期特征;而 OpenAI Agents SDK 作为轻量级、无抽象污染的 Python 工具集,强调显式控制与可调试性,二者结合可快速构建可观测、可复现
知识导航神器:Obsidian Breadcrumbs 插件全攻略
Parent: 插件Child: Breadcrumbs 用法这样,它就能识别出你和其他笔记的关系。
java calendar_Java Calendar clear()方法与示例
java calendar 日历类clear()方法 (Calendar Class clear() method) Syntax: 句法: public final void clear(); public final void clear(int fi); clear() method is available in java.util package. clear(...
松灵机器人——ROS下的CAN通讯调试(内含所需调用包,都是操作步骤)
松灵机器人——ROS下的CAN通讯调试(都是操作步骤) 1 代码包地址 scout_ros package:https://github.com/westonrobot/scout_ros.git ugv_sdk-main package:https://github.com/westonrobot/ugv_sdk webots package:https://cyberbotics.com/ 2 硬件准备 2.1 SCOUT MINI 小白车 + 尾部航空插头 + CAN_TO_USB适配器
java calendar clear_java.util.Calendar.clear(int field)方法实例
全屏java.util.Calendar.clear()方法设置给定日历字段值和Calendar的时间值为undefined。Calendar实现类可能会使用默认字段值的日期和时间计算。声明以下是java.util.Calendar.clear()方法声明publicfinalvoidclear(intfield)参数field-- 日历字段设置为undefined。返回值此方法不返回任...
面向元数据的 SAP UI 中枢:namespace sap.ui.mdc 全景解析
如果把应用前端比作一条数据到交互的装配线,sap.ui.mdc 就是那条线的标准化工装:以 PropertyInfo 描述原料,以 Delegate 定义装配方法,以 p13n 与 VariantManagement 交付面向个体的最终产物;而 Condition Model、Operator 与 ValueHelp 则让输入与筛选的语义落地。与 OData V4 服务与 Fiori Elements 宏构件组合使用时,它能在保持一致体验的同时,给自由式开发者留下足够的可编排空间。
【YOLOv11改进 - 特征融合】DySample :超轻量级且高效的动态上采样器
【YOLOv11改进 - 特征融合】DySample :超轻量级且高效的动态上采样器
java clearend_Java Calendar clear()方法与示例
日历类clear()方法语法:publicfinalvoidclear();publicfinalvoidclear(intfi);clear()方法在java.util包中可用。clear()方法用于设置所有日历字段的值,因为该方法中未传递任何特定字段,并且未定义该值,因此Calendar类使用默认字段作为日期和时间。clear(int fi)方法用于设置给定日历字段的值,因为在该...
GTSAM | gtsam::ISAM2
本节简单介绍`gtsam::ISAM2`类。
Java Calendar类深度解析:从核心原理到实战避坑指南
在Java开发中,日期时间处理是基础且关键的技术环节,尤其在维护遗留系统和理解时间处理演进时更为重要。其核心原理基于字段化模型,将日期时间分解为年、月、日等独立字段进行操作,这种设计提供了灵活性但也引入了可变性和月份从0开始等经典陷阱。从技术价值看,掌握Calendar类不仅能高效处理排班、财务周期、促销倒计时等常见业务场景,更是理解Java时间API发展脉络的关键。本文聚焦Calendar类的工厂模式设计、add与roll的微妙差异、日期计算规范化以及线程安全等核心议题,通过解析日期比较、时区处理和性能优
ThingsBoard教程(十六):RPC部件的使用
前言 各位读者好,截止目前,ThingsBoard系列文章已经做了十篇,分别是 ThingsBoard教程(一):ThingBoard介绍及安装 ThingsBoard教程(二):租户,租户配置,部件组模块的使用 ThingsBoard教程(三):系统设置模块的使用 ThingsBoard教程(四):规则链简介与操作 ThingsBoard教程(五):客户,资产管理 ThingsBoard教程(六):设备管理 ThingsBoard教程(七):模拟设备遥测 ThingsBoard教程(八):自定义UI T
Codex 100个真实案例 - 用AI生成Blender 3D建模脚本(建模师要失业了?)
本案例将展示如何用 Codex 生成 Blender Python API(bpy)脚本,自动创建完整的 3D 模型。我们将从基础几何体开始,逐步实现布尔运算、材质设置、光照配置,最终完成一张精美桌子的 3D 建模——包括桌面、桌腿、倒角、木纹材质。还会实现参数化批量生成不同风格的桌子、渲染输出 PNG 图片、以及 360 度旋转动画。全程用自然语言驱动 Codex,让建模从"点鼠标"变成"说人话"!
Java Calendar类深度解析:历史遗留类的核心缺陷与现代API迁移指南
在Java编程中,日期时间处理是基础且关键的技术领域。其核心原理涉及时间的表示、计算与时区转换。传统的java.util.Calendar类虽然提供了日期字段操作和计算功能,但其可变性设计导致线程安全问题,反直觉的API(如月份从0开始)增加了开发复杂度。从技术价值看,理解Calendar有助于处理遗留系统代码和掌握日期时间处理的演进脉络。在实际应用场景中,开发者常需维护使用Calendar的老项目,或应对相关面试问题。本文聚焦Calendar的线程安全陷阱、月份常量混淆等高频问题,并对比现代java.ti
Y-Branch and a closed y-branch loop
双臂后面的区域,我们将它的双臂使用一个波导进行了连接,使得它本身形成了一个闭合回路,因此,该结构被称作。它们均是用来对经过它们的光束能量进行分割的一种器件。首先,我们知道一点,在光波导层面,今天给大家介绍一下,什么是。
Java线程安全实战:从i++竞态到Atomic无锁设计
线程安全是Java并发编程的核心基础,本质是解决多线程环境下共享变量的可见性、原子性与有序性问题。其底层依托Java内存模型(JMM)规范,通过synchronized提供互斥与可见性保障,volatile确保变量修改对所有线程即时可见但不保证原子性,而Atomic类则基于CAS指令实现无锁化原子操作。这些机制共同支撑高并发场景下的数据一致性,广泛应用于计数器、状态标志、限流器、配置管理等典型业务模块。理解它们的原理差异与适用边界,是构建可靠电商、金融及实时系统的关键工程能力。
深度学习工具包 DeepLearningToolbox
深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[](https://bitdeli.com/free "Bitdeli Badge")
ET2012新版免狗免安装绿色软件
ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,
端侧AI风控模型:隐私优先的轻量级信用评估实践
端侧AI推理是将机器学习模型部署在用户设备本地执行的技术范式,其核心原理在于通过模型压缩、量化与硬件适配,在资源受限终端实现低延迟、低功耗、高隐私的实时决策。相比云端推理,它规避了数据上传风险与网络依赖,显著提升合规性与用户体验。该技术已在金融风控领域形成关键价值——尤其适用于需满足GDPR、CCPA及国内《个人信息保护法》的场景。典型应用包括移动端信用评分、实时反欺诈、离线身份核验等。本文聚焦Android平台,结合TensorFlow Lite与CS230课程知识,详解如何将深度学习模型压缩至500KB
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
Java增量更新为何必须用时间戳机制而非业务字段
增量更新是分布式系统数据同步的基础能力,其本质是基于时序的可靠变更捕获。传统依赖数据库update_time等业务字段的方式存在时间可篡改、多节点时钟偏差、主从延迟导致漏数据等根本性缺陷。真正健壮的方案需构建端到端的时间可信体系:从JVM的System.currentTimeMillis()与nanoTime校准机制,到MySQL TIMESTAMP(3)字段设计与时区统一(推荐TIMESTAMP+Instant组合),再到滑动窗口的数据库服务端时间锚定与自适应调优。该机制不仅解决Java后端在电商、物流、
SIMATIC S7-1200, S7-1500 PID 控制[手册]
SIMATIC S7-1200, S7-1500 PID 控制[手册]
端侧隐私信贷模型:从CS230理论到合规Android落地
端侧机器学习是指将模型推理完全部署在用户设备本地,不依赖云端计算与数据上传,是当前金融、健康等高敏感场景的核心技术路径。其核心原理在于通过模型轻量化(如知识蒸馏、int8量化)、特征本地化(系统API替代原始数据)和隐私增强设计(行为指纹、最小必要输入),在算力受限的移动设备上实现低延迟、高合规的AI决策。该技术显著提升用户信任与转化率,广泛应用于信用评估、反欺诈、个性化推荐等需平衡精度与隐私的业务场景。本文聚焦Android平台,详解如何将CS230经典机器学习流程重构为生产级隐私优先信贷风险分类器,涵盖
Java线程安全:原理、问题与解决方案全解析
线程安全是并发编程的核心概念,指多线程环境下共享资源的正确访问机制。其本质涉及原子性、可见性和有序性三大特性,任何特性的破坏都会导致数据竞争、死锁等问题。Java内存模型(JMM)通过happens-before规则和volatile关键字保障可见性,而synchronized和CAS操作则确保原子性。在实际开发中,ConcurrentHashMap、AtomicInteger等并发容器和原子类能有效解决90%的线程安全问题,而ThreadLocal则实现了线程封闭。高并发场景下,还需注意锁优化、死锁预防等
手把手教你给STM32F1的RTC和定时器‘打配合’,实现毫秒级随机种子更新(FreeRTOS任务示例)
本文详细介绍了如何在STM32F1系列单片机上结合RTC和定时器实现毫秒级随机种子更新,特别适用于FreeRTOS环境。通过CubeMX配置和代码示例,展示了如何解决无硬件随机数发生器时的随机数生成挑战,提升系统随机性质量。
Android运行时权限实战:适配Android 14与国产ROM的动态权限管理
Android运行时权限是保障App合规与功能可用性的基础机制,其核心原理涉及权限分组、授权状态机、系统级回调触发条件及厂商定制化拦截逻辑。随着targetSdkVersion升级至34,READ_MEDIA_IMAGES、POST_NOTIFICATIONS等新权限成为强制项,而shouldShowRequestPermissionRationale()在华为、小米、OPPO等ROM中行为差异显著,直接影响用户授权率与闪退风险。该机制的技术价值在于平衡用户体验、隐私合规与功能完整性,广泛应用于相机调用、相
437



被折叠的 条评论
为什么被折叠?



