Tag: timestamp

用于UTC或带时区的时间戳的SQL标准

我正在寻找一种标准的SQL方法,以确保独立于数据库的列具有UTC时间戳或具有时区信息的时间戳。 在DB-column中存储时间戳UTC的UTC示例: 存储的UTC值= 2014-01-01 15:30:00.000 当地时间印度21:00 / 9pm当地时间戳“2014-01-01 21:00:00.000” 存储的UTC值= 2013-12-31 23:30:00.000 当地时间印度05:00 / 5am当地时间戳“2014-01-01 05:00:00.000” 在UTC方式中,应用程序必须处理时间分区 现在我不知道可能的方式,时间戳和时区具有上述值 存储的本地值= 2014-01-01 21:00:00.000 当地时间印度21:00 / 9pm当地时间戳“2014-01-01 21:00:00.000” 但是有时区信息吗? 或者如何获取此时间戳的时区信息? 存储的本地值= 2014-01-01 05:00:00.000 当地时间印度05:00 / 5am当地时间戳“2014-01-01 05:00:00.000” 但是有时区信息吗? 或者如何获取此时间戳的时区信息? 希望有人可以帮助我摆脱黑暗? 是否存在关于时间问题和存储数据以供国际应用的良好实践?

Date.getTime()不包括时间?

无法理解为什么会发生以下情况: String date = “06-04-2007 07:05”; SimpleDateFormat fmt = new SimpleDateFormat(“MM-dd-yyyy HH:mm”); Date myDate = fmt.parse(date); System.out.println(myDate); //Mon Jun 04 07:05:00 EDT 2007 long timestamp = myDate.getTime(); System.out.println(timestamp); //1180955100000 — where are the milliseconds? // on the other hand… myDate = new Date(); System.out.println(myDate); //Tue Sep 16 13:02:44 EDT 2008 timestamp = myDate.getTime(); System.out.println(timestamp); //1221584564703 […]

如何将java.sql.Timestamp(yyyy-MM-dd HH:mm:ss.S)格式化为日期(yyyy-MM-dd HH:mm:ss)

好吧,我有一个使用Date的细节,因为我从我的DataBase和变量“fecha”(日期)中获取一个Object来自同一个对象我得到一个java.sql.Timestamp ,所以格式化是毫秒,但我不希望出现毫秒。 所以我需要将我从数据库接收的日期格式化为没有毫秒数的新日期。 这是对象Factura: public class Factura implements java.io.Serializable { private FacturaId id; … private boolean activo; private Date fecha; } 在映射到DB的xml中,我有这个变量“fecha”的代码: 在数据库中,该列是fecha DATETIME 。 当我从我的数据库中获得一个对象Factura时,我得到了这种日期2013-10-10 10:49:29.0但是我希望它没有.0 (毫秒)。 我试过这个( factura是Factura对象): try { SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”); Date fechaNueva = null; String fechaStr = factura.getFecha().toString(); int tamaño = fechaStr.length()-2; fechaStr = fechaStr.substring(0, tamaño); //I […]

将java.util.date默认格式转换为Java中的Timestamp

java.util.date的默认格式是这样的“Mon May 27 11:46:15 IST 2013”​​。 如何将其转换为时间戳并以秒计算相同和当前时间之间的差异? java.util.Date date= new java.util.Date(); Timestamp ts_now = new Timestamp(date.getTime()); 上面的代码给出了当前的时间戳。 但是,我不知道如何找到上述字符串的时间戳。

我应该在Java 8中使用哪个日期类?

Java 8有一整套日期类: java.time.LocalDateTime ; java.time.ZonedDateTime ; java.time.Instant ; java.time.OffsetDateTime ; java.sql.Timestamp ; java.util.Date 。 我已经通过他们的JavaDocs并注意到所有这些类都包含我需要的所有方法。 因此,目前,我可以随机选择它们。 但我想有一些理由说明为什么有6个单独的类,每个类都专门用于特定目的。 技术信息和要求: 输入是String ,它被转换为这些日期格式之一。 我不需要显示时区,但是当我比较两个日期时,能够正确比较纽约和巴黎的时间非常重要。 精确级别是秒,不需要使用毫秒。 所需的操作: 找到最大/最小日期; 按日期排序对象; 计算日期和时间段(两个日期之间的差异); 将对象插入MongoDB并按日期从数据库中检索它们(例如,特定日期之后的所有对象)。 我的问题: 我应该记住哪些方面,以便从性能和可维护性的角度选择这四个选项中的最佳格式? 有什么理由可以避免这些日期类别吗?

无法使用SimpleDateFormat进行解析

我试图用“MMM d HH:mm:ss”来解析“Dec 6 04:13:01”,但它无法正常工作! 我花了很多时间,但无法弄明白。 任何想法失败的原因?

如何将Java TimeStamp转换为ms访问日期?

我想将一个java时间戳插入一个msaccess数据库,但我收到一个错误,如下所示。 ms-access字段已设置为DATE数据类型。 任何建议都将深表感谢。 谢谢 这是我的DAO类方法: public void addSale(String saleDetails, String saleTotal, Timestamp saleTimestamp) throws ClassNotFoundException, SQLException { Statement myStatement = getConnection(); String sql = “INSERT INTO Sale (SaleDetails, SaleTotal, SaleTimestamp)” + ” VALUES (‘”+saleDetails+”‘,'”+saleTotal+”‘,'”+saleTimestamp+”‘)”; myStatement.executeUpdate(sql); closeConnection(); 我的DTO方法: public void storeSale(String saleDetails, String saleTotal, Timestamp saleTimestamp){ DAO dao = DAO.getDAO(); try { dao.addSale(saleDetails, saleTotal, saleTimestamp); } […]

在java中解析带时区的时间戳?

我正在尝试使用从DB获取的时区解析一串格式时间戳。 字符串如下: SimpleDateFormat mdyFormat = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss.SSSSSZ”); SimpleDateFormat sdf = new SimpleDateFormat(“dd-MM-yyyy”); Date d1 = mdyFormat.parse(“2014-04-01 15:19:49.31146+05:30”); String mdx = sdf.format(d1); System.out.println(mdx); 问题是,我得到一个错误说: Exception in thread “main” java.text.ParseException: Unparseable date: “2014-04-01 15:19:49.31146+05:30” at java.text.DateFormat.parse(DateFormat.java:357) at com.karthik.Timestampvalidate.main(Timestampvalidate.java:31) 有谁知道如何解决这一问题 ?

log4j与System.out.println – 记录器的优势?

我在项目中第一次使用log4j。 一位程序员告诉我,使用System.out.println被认为是一种糟糕的风格,log4j就像现在的日志记录标准一样。 我们做了很多JUnit测试 – System.out变得更难测试。 因此我开始将log4j用于Console控制器类,这只是处理命令行参数。 // log4j logger config org.apache.log4j.BasicConfigurator.configure(); Logger logger = LoggerFactory.getLogger(Console.class); Category cat = Category.getRoot(); 似乎工作: logger.debug(“String”); 生产: 1 [main] DEBUG project.prototype.controller.Console – String 我有两个问题: 根据我的基本理解,如果在记录器上启用了调试模式,那么使用这个记录器可以为我提供编写带时间戳的日志文件的舒适选项 – 而不是垃圾邮件控制台? 为什么System.out.println更难测试? 我搜索了stackoverflow并找到了测试配方 。 所以我想知道使用log4j我真正获得了什么样的优势。

Hibernate强制时间戳持续/加载为UTC

我正在使用java,mysql,hibernate(3.6.x)。 在java方面,我使用的是java.sql.Timestamp对象。 在mysql方面我正在使用datetime列。 我希望hibernate使用UTC时区保存/加载这些Timestamp对象,而不管system / java / mysql时区。 我发现“ 如何使用JPA和Hibernate以UTC时区存储日期/时间和时间戳 ”,这些信息很丰富,但缺少一些我很难找到的最终实现信息。 我想实现一个UtcTimestampTypeDescriptor,如该线程所示,并配置hibernate使用它而不是正常的TimestampTypeDescriptor。 如何配置hibernate以使用UtcTimestamp类型而不是默认的Timestamp类型?