增加 Java.sql.date/时间的最佳方法是什么?

2023-12-06

我有一个问题,我有一个 MySQL 数据库将日期和时间存储在单独的列中。但是,在 Java 代码中,我需要将数据库中日期和时间的结果时间戳增加分钟、小时或天,然后更新数据库中的相应列。

我目前在 Java 中使用 Java.sql.date 和 java.sql.time 类型。谁能建议最好的方法?

我可以通过以下方式实现上述目标:

public static String addToDateTime(String timestampIn, String increment) {

    // Decompose timestamp.
    int year = Integer.parseInt(timestampIn.substring(0, 4));
    int month = Integer.parseInt(timestampIn.substring(5, 7));
    int day = Integer.parseInt(timestampIn.substring(8, 10));
    int hours = Integer.parseInt(timestampIn.substring(11, 13));
    int mins = Integer.parseInt(timestampIn.substring(14, 16));
    int secs = Integer.parseInt(timestampIn.substring(17, 19));

    Calendar calendar = new GregorianCalendar(year, month - 1, day, hours, mins, secs);

    // Increment timestamp.
    if (increment.equals("HOURLY")) {
        calendar.add(Calendar.HOUR, 1);
    }
    else if (increment.equals("DAILY")) {
        calendar.add(Calendar.HOUR, 24);
    }
    else  if (increment.equals("WEEKLY")) {
        calendar.add(Calendar.HOUR, 168);
    }
    else if (increment.equals("DO NOT POLL")) {

        // Do nothing.

    }

    // Compose new timestamp.
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String timestampOut = sdf.format(calendar.getTime());
    return timestampOut;
}

但更喜欢不那么原始的东西。

Thanks

摩根先生


您可以使用乔达时间。然后,您可以使用 DateTime 的加小时, plusDays, and 加周。对于解析,有日期时间格式 and 日期时间格式化程序。就像是:

DateTimeFormatter fmt = DateTimeFormat.forPattern("YYYY-MM-dd HH:mm:ss");
DateTime dt = fmt.parseDateTime(timestampin);

if (increment.equals("HOURLY")) {
    dt = dt.plusHours(1);
}
else if (increment.equals("DAILY")) {
    dt = dt.plusDays(1);
}
else  if (increment.equals("WEEKLY")) {
    dt = dt.plusWeeks(1);
}

String timestampOut = fmt.print(dt);

你可能可以使用类似的东西:

DateTime dt = new DateMidnight(sqlDate).plus(Period.millis(sqlTime.getTime()));

假设 sql.Time 表示自午夜以来的毫秒数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

增加 Java.sql.date/时间的最佳方法是什么? 的相关文章

  • JAXB 继承冲突 - 重新注释子类

    目前我的项目中有这样的环境 public abstract class Foo private List
  • 未注入带有 JPA2 的 Apache Ignite 2.7 IgniteRepository

    使用在 Web 上建立的 guildes 我使用 Spring Data JPA 2 应用程序制作了简单的 Spring Boot 2 仅在 2 7 版本中才向 Apache Ignite 添加了 Spring Boot JPA 2 支持
  • 如何避免Eclipse在将类名放在注释中时导入类,以便checkstyle稍后不会抱怨?

    有时我将类名放在方法或类的注释中只是为了引用 但是 Eclipse 会自动执行导入并在文件中留下导入语句 这会导致稍后出现 未使用的导入 检查样式错误 当我在注释中输入类名时 是否可以更改一些配置以避免 Eclipse 自动导入 人们不同意
  • 如何将此本机 SQL 查询转换为 HQL

    所以我有这个很长的复杂的 Native SQLQuery string hql SELECT FROM SELECT a rownum r FROM select f2 filmid f2 realisateurid f2 titre f2
  • for循环中更新JLabel的问题

    我的程序的想法是从之前在其他 JFrame 中保存的列表中选择一个名称 我想在标签中一个接一个地打印所有名称 它们之间有很小的延迟 然后停在其中一个名称上 问题是lbl setText String 如果有多个则不起作用setText co
  • Java 中如何验证字符串的格式是否正确

    我目前正在用 Java 编写一个验证方法来检查字符串是否是要更改为日期的几种不同格式之一 我希望它接受的格式如下 MM DD YY M DD YY MM D YY 和 M D YY 我正在测试第一种格式 每次它都告诉我它无效 即使我输入了有
  • 在Java中如何将字节数组转换为十六进制?

    我有一个字节数组 我希望该数组的每个字节字符串转换为其相应的十六进制值 Java中有没有将字节数组转换为十六进制的函数 byte bytes 1 0 1 2 3 StringBuilder sb new StringBuilder for
  • 错误膨胀类 android.support.design.widget.NavigationView [启动时崩溃]

    该应用程序应该有一个导航抽屉 可以从左侧拉出并显示各种活动 但是一旦将导航栏添加到 XML Activity homescreen 文档中 应用程序一启动就会崩溃 主屏幕 java package com t99sdevelopment c
  • 开发者环境-如何调用/消费其他微服务

    背景 我的环境 Java Play2 MySql 我在 Play2 gt S1 S2 S3 上编写了 3 个无状态 Restful 微服务 S1 消耗来自 S2 和 S3 的数据 因此 当用户点击 S1 时 该服务会异步调用 S2 S3 合
  • Proguard 正在破坏我的清洁度。 Gson 和泛型

    我有一个从持久性加载信息的函数 我只是以一种非常简单的方式告诉它的类型 该类称为SharedPreferencesHelper kt所以它是一个真正的生活问题解决者 fun
  • java.lang.UnsatisfiedLinkError - android studio gradle 中的 NDK?

    文件夹结构 app main java jni Android mk Application mk hello jni c res 在构建 gradle apply plugin com android application androi
  • 从 $i 获取值,顺序被打乱

    for i 0 i lt count name i some output ommited td td
  • SQL Server 标识列值从 0 而不是 1 开始

    我遇到了一个奇怪的情况 数据库中的某些表的 ID 从 0 开始 即使 TABLE CREATE 的 IDENTITY 1 1 也是如此 对于某些表来说是这样 但对于其他表则不然 它一直有效到今天 我尝试过重置身份列 DBCC CHECKID
  • 如何使用eclipse调试JSP tomcat服务?

    我想使用 Eclipse IDE 调试器来调试单独运行的 JSP Struts Tomcat Hibernate 应用程序堆栈 如何设置 java JVM 和 eclipse 以便设置断点 监视变量值并查看当前正在执行的代码 我刚刚用谷歌搜
  • 为什么不能在 if 语句中声明变量?

    以下 Java 代码无法编译 int a 0 if a 1 int b 0 if a 1 b 1 为什么 不能有任何代码路径导致程序将 1 分配给b无需先声明 我突然想到b的变量范围可能仅限于第一个if声明 但后来我不明白为什么 如果我实在
  • Firebase:用户注册后如何进行电话号码验证?

    所以我知道我可以使用电子邮件验证或电话号码验证 但我想做的是在用户注册或登录后进行电话号码验证 如何连接这两种身份验证方法 最后 Firebase中是否有一个函数可以检查用户是否通过电话号码验证 谢谢 即使用户已通过身份验证 您仍然可以使用
  • 从 InputStream 中删除换行符

    我喜欢从一个文件中删除所有换行符 对于 n 和 r n java io InputStream 在读取文件时 相应的方法如下所示 param target linkplain File return linkplain InputStrea
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset
  • Unicode(希腊语)字符存储在数据库中,例如“??????”

    数据库中的希腊字符就像问号 我找不到解决办法 我使用 Java Swing 开发了一个应用程序 但是当我在 MySQL 中插入希腊字母时 就像问号一样 我将数据库排序规则更改为 utf8 并将列也更改为 utf8 我的项目编码设置为UTF
  • SQLite 中的累积求和值

    我正在尝试在 SQLite 中执行值的累积和 我最初只需要对一列求和并获得代码 SELECT t MyColumn SELECT Sum r KeyColumn1 FROM MyTable as r WHERE r Date lt t Da

随机推荐

  • Xcode:Interface Builder XIB 编译器错误

    Xcode 5 1 1 和 OS X 10 9 3 我打开 Xcode 并启动一个新的 Cocoa 项目 然后我点击运行 构建失败 我收到以下错误消息 Interface Builder XIB Compiler Error Interfa
  • if else 语句反转

    我想要的结果是第二个 if else 语句 如果代码不在列表中 则发出警报 我不明白为什么第一个 if else 语句失败 我认为只需反转第二个 if else 语句 我误解了什么吗 https jsfiddle net e6qohvhc
  • 如果值比闭包寿命更长,那么在闭包之间共享引用的正确方法是什么?

    我想分享两个闭包之间的引用 在一个闭包中可变地 这是一种人为的情况 但我发现在学习 Rust 的背景下它很有趣 为了使它工作 我必须利用Rc Weak and RefCell 有没有更简单的方法来实现这一目标 use std cell Re
  • 多个 和 标签

    我正在尝试创建一个非常简单的 Web 应用程序 基本上是为了了解 HTML5 CSS 和 JavaScript 编码的最佳实践 我的应用程序有 3 4 页 每一页都使用相同的菜单标题 所以我想通过将其写入单独的文件 PHP 或 HTML 来
  • get_headers 不一致[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 运行以下代码 var dump get headers
  • 在 Makefile 中链接 cURL

    通过源代码安装 cURL 后 我需要在 Ubuntu 11 04 中链接 cURL 问题的修正 首先我发现 l必须先于 L然后发现我没有在 makefile 中输入变量 获取 cURL 配置 在我的终端上 curl config libs
  • UIBezierPath + CAShapeLayer - 动画填充一个圆圈[重复]

    这个问题在这里已经有答案了 我正在尝试对 CAShapeLayer 的路径进行动画处理 以便获得圆形 填充 到特定数量的效果 问题 它 有效 但不是AS尽管我认为它可能很顺利 但我想对其进行一些缓和 但因为我正在单独为每个 设置动画 所以我
  • JSONEncoder 不允许将类型编码为原始值

    我正在致力于实施Codable for an enum类型与可能的关联值 由于这些对于每种情况都是独特的 所以我认为我可以在编码期间不带密钥地输出它们 然后简单地看看在解码时可以得到什么 以恢复正确的情况 这是一个非常精简的 人为的示例 演
  • pip install 生成“找不到满足要求的版本”[重复]

    这个问题在这里已经有答案了 我有一个包已上传到 test pypi 我可以在我的计算机上的虚拟环境中安装这个软件包 没有任何问题 pip install index url https test pypi org simple packag
  • 对于某些在线编译器,扫描器 next() 会抛出 NoSuchElementException

    这似乎是一个常见问题 多次询问 但我无法找到这种行为的解释 以下代码可以在一个编译器中运行 但会抛出异常Exception in thread main java util NoSuchElementException在另一个编译器中 Sc
  • Spacy -- ImportError:preshed.maps 未导出预期的 C 函数 map_clear

    我正在尝试导入spacy徒然 gt gt gt import spacy Traceback most recent call last File
  • 如何将Flash(.swf)放入页面中?

    我计划使用 swf 文件作为标题 这是行不通的 img src exactheader swf width 650 height 140 你能告诉我怎么做吗 试试这个
  • 集群内无法访问 Kubernetes POD

    我尝试安装Kubernetes with kubeadm在 3 个虚拟机上Debian我的笔记本电脑上的操作系统 一个作为主节点 另外两个作为工作节点 我完全按照教程做的kubernetes io建议 我用命令初始化了集群kubeadm i
  • NSUserDefaults 无法在带有 Watch OS2 的 Xcode beta 上工作

    我刚刚安装了最新的 Xcode 测试版来尝试Swift 2以及对 Apple Watch 开发部分所做的改进 我实际上很难弄清楚为什么这个基本NSUserDefaults之间共享信息的方法iOS and 观看 OS2不工作 我跟着this
  • Python - 查找第二小的数字

    我在这个网站上找到了这段代码来查找第二大数字 def second largest numbers m1 m2 None None for x in numbers if x gt m1 m1 m2 x m1 elif x gt m2 m2
  • 在测试类中模拟私有静态最终变量

    我想测试的类中有一些私有静态最终字段 就像下面这样 public class ClassToTest private static final Myclass myclass MyClassFactory getMyClass type f
  • ffmpeg 在 iOS5.1 中不会 ./configure

    我试图在 iOS5 1 armv7 上构建 ffmpeg 当我尝试像这样运行 configure 时 configure disable doc disable ffmpeg disable ffplay disable ffserver
  • Pyodbc - “未找到数据源名称,并且未指定默认驱动程序”

    我很难得到pyodbc工作 我有unixodbc unixodbc dev odbc postgresql pyodbc安装在我的 Linux Mint 14 上的软件包 我对自己找到解决方案失去了希望 感谢任何帮助 详情请参阅下面 Run
  • 如何在还使用 keycloak 提供网页的客户端上使用计划任务?

    我在用着Spring Boot and Keycloak开发一个网络应用程序 然后我写了一个计划任务 我正在使用KeycloakRestTemplate向另一个应用程序询问一些数据 如下所示 Override Scheduled cron
  • 增加 Java.sql.date/时间的最佳方法是什么?

    我有一个问题 我有一个 MySQL 数据库将日期和时间存储在单独的列中 但是 在 Java 代码中 我需要将数据库中日期和时间的结果时间戳增加分钟 小时或天 然后更新数据库中的相应列 我目前在 Java 中使用 Java sql date