`
lqz2012
  • 浏览: 303 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

JDBF实现写入datetime类型字段

    博客分类:
  • JAVA
阅读更多

<div class="iteye-blog-content-contain" style="font-size: 14px;">
<p>JDBF.JAR目前在谷歌的官网上能下载。开源的,由于国情原因,该那啥那啥吧。</p>
<p>JDBF比较简单,四个类,字段类,读,写,异常类。不多解释了。</p>
<p>用后发现JDBF只支持,C,N,L,D,F几种类型字段。关于DBF的基本知识我就不普及了。该那啥那啥吧。</p>
<p>由于上传的文件要求有dateTime类型字段。苦苦思索,只能自己封装了。</p>
<p>下面说一下这个dateTime类型字段是怎么存储的。</p>
<p>   dateTime类型存储8位字节。这个可以通过一些DBF展示工具看到。推荐DBF viewer plus。既能编辑,也能读取。</p>
<p>   dateTime类型前四个字节存储日期,后四个字节存储时间。这个我是通过JAVA把文件用byte读出来得到的信息。</p>
<p>下面说重点。</p>
<p>  dateTime类型的日期定义。</p>
<p>    dateTime类型存储日期是将整个日期数据转换成二进制形式存储。这里会有个基数。如:2000年1月1日对于的数是2451545。至于这个数是怎么定义的,我就不太清楚了。如果加一天,那么2000年1月2日对应的数就是2451546。这是我多次验证后的结果。如果加一个月就在基数上加相应的天数,以此类推。</p>
<p>  dateTime类型的时间定义。</p>
<p>   dateTime类型存储时间和日期类似。不过基数是1000。比如 00:00:01 通过二进制转换十进制获得的数是1000。一分钟就是60000,1小时就是1000*3600。依次类推。</p>
<p>  dateTime类型存储。</p>
<p>    dateTime类型是先将日期和时间分开,分别转成二进制32位,不足前补0再由二进制转成四位byte存储。例如2000-01-01 00:00:01。日期转成二进制是00000000 00100101 01101000 01011001,时间转成二进制是00000000 00000000 00000011 11101000。这两个二进制是由上面的基数推导。</p>
<p>JDBF是通过字段的值转成string后再转成byte数组往DBF文件写的。由于dateTime类型的特殊性,不能这样操作。得有个方法直接将字段转成byte数组。再通过writerDBF调用写进去即可,这里writerDBF类也需要改动。多的不想写了。有需要的直接下载附件看吧。writerDBF通过调用myAddrecd()方法即可。其他操作一样。</p>
DBF读取问题已解决!新的附件包括jar和源码。
<p> </p>
<p> </p>
<p> </p>
<p> </p>
</div>

 

分享到:
评论

相关推荐

    解决python写入mysql中datetime类型遇到的问题

    在mysql数据库中,有一个datetime类型的字段用于存储记录的日期时间值。python程序中有对应的一个datetime变量dt。 现在需要往mysql数据库中添加记录,每次添加时,将datetime型变量dt写入mysql数据库tablename表中...

    java的Date类型转换成MySQL的DateTime类型.doc

    在网络游戏开发中,经常需要将记录游戏开始和结束的时间写入到数据库中,这就需要将 Java 的 Date 类型转换为 MySQL 的 DateTime 类型。 在 Java 中,可以使用java.util.Date类来获取当前的日期和时间,然后使用...

    python3实现往mysql中插入datetime类型的数据

    # 假设已有表T_GOOD和字段spider_time为datetime类型 sql = """ INSERT INTO T_GOOD(spider_time) VALUES (%s) """ values = (formatted_time,) cursor.execute(sql, values) conn.commit() except ...

    Android的SQLite中DateTime类型数据的存取问题

    Android 的 SQLite 中 DateTime 类型数据的存取问题 Android 平台中的 SQLite 数据库在存储 DateTime 类型的数据时会遇到一些问题。本文将详细介绍这些问题和解决方案。 日期类型数据的存储问题 -----------------...

    mysql中datetime类型设置默认值方法

    在MySQL中,设置datetime类型字段的默认值为当前时间有多种方法,但需要注意不同版本的MySQL可能有不同的限制和语法。 首先,当我们使用SQL语句创建表时,可以直接在字段定义中设置默认值为`CURRENT_TIMESTAMP`,...

    java的Date类型转换成MySQL的DateTime类型.docx

    为了实现从Java的`Date`类型到MySQL的`DateTime`类型的转换,可以采用以下步骤: 1. **创建转换方法**:定义一个名为`DateToMySQLDateTimeString`的方法,该方法接受一个`java.util.Date`对象作为参数,并返回符合...

    grid中用date形式显示并编辑datetime字段

    在VFP中,datetime是一种可以存储日期和时间的混合数据类型,它包含了从公元1601年1月1日以来的毫秒数。默认情况下,datetime字段在Grid中会显示为“YYYY-MM-DD HH:MM:SS”格式,但我们可以自定义显示样式。 1. **...

    如何对SQL Server datetime类型数据优化.pdf

    datetime类型优化测试的实现步骤 为了测试优化效果,首先需要准备测试环境,包括创建具有不同数据类型的测试表,插入大量数据,并为特定字段创建索引。然后,通过查询索引属性中的索引碎片信息、表数据和索引占用的...

    SQL的datetime类型数据转换为字符串格式大全

    SQL的datetime类型数据转换为字符串格式大全 2007-10-10 11:11:43 2007/10/10 SELECT convert(char(20),getdate(),120) as TIME_1,convert(char(20),getdate(),111) as TIME_2 将字符串20100426103059转换为...

    datetime类型用date格式化问题

    ### datetime类型用date格式化问题解析 #### 一、问题背景与概述 在处理日期时间相关的数据时,经常会遇到各种格式化的需求。特别是在PHP中,`datetime`类型的处理尤为重要,因为这直接影响到数据的正确性以及程序...

    DateTime数据类型

    在SQL Server中插入带有`DateTime`类型字段的数据时,可以使用以下格式: ```sql INSERT INTO Orders (OrderDate) VALUES ('2023-06-01 10:15:30'); ``` ##### 2. 查询特定日期范围内的数据 查询特定日期范围内的...

    datetime字段在grid中作为date显示并可编辑

    在VFP中,我们可以设置grid的列类型以适应不同的数据字段,例如,对于datetime字段,我们可以设置其为日期/时间类型。 1. **设置grid列类型**:在VFP中,通过`GRID COLS`命令或在设计视图中可以设置列的类型。对于...

    向数据库插入datetime类型的数据

    ### 向数据库插入datetime类型的数据 #### 知识点一:使用JSP处理datetime类型数据 在Java Web开发中,经常需要将日期时间类型的值存储到数据库中。这里提到的JSP(JavaServer Pages)是一种基于Java技术的服务器...

    MySQL数据库:表的字段类型.pptx

    数据库和表的创建与管理 表的字段类型 ...表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。 每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使

    解决mysql时间戳datatime存储四舍五入问题.docx

    在您的项目中遇到的问题是关于DateTime类型的字段在存储时出现了四舍五入的问题,这通常是由于DateTime字段的精度设置不正确导致的。 DateTime类型在MySQL中默认支持微秒级别的精度,即可以存储到小数点后六位。但...

    SQLServer常用字段类型

    ### SQL Server 常用字段类型详解 在数据库设计与管理中,选择合适的字段类型对于数据的存储效率、查询性能以及数据完整性至关重要。SQL Server 提供了丰富的数据类型,覆盖了从基本数值到复杂文本、图像等各类数据...

    MySql性能调优(一)字段类型的选取之时间类型

    TIMESTAMP 类型与 DATETIME 类型类似,但 TIMESTAMP 类型有一个自动更新的功能,即在插入或更新数据时,TIMESTAMP 字段将自动设置为当前时间戳。例如,创建一个存储最后一次更新时间的列可以使用 TIMESTAMP 类型: ...

    SQL server 和C#中的DateTime使用小结

    3. DateTime.ToString(): DateTime.ToString() 方法用于将 DateTime 类型转换为字符串。 ```csharp DateTime date = DateTime.Now; string strDate = date.ToString("yyyy-MM-dd"); ``` 4. DateTime.Add(): DateTime...

    flink13.1 scala 11 操作clickhouse 的代码实现 包括source sink

    flink13.1 中操作clickhouse 所需要的jar 包 以及自定义flink 连接clickhouse 的驱动包 直接写运行就可以了, 请查看https://b flink13.1 中操作clickhouse 所需要的jar 包 以及自定义flink 连接clickhouse 的驱动包...

    js实现的datetime控件

    实现datetime控件时,可能需要创建一个新的input元素,或者修改已有元素的属性,如类型、值等,以展示和获取日期时间。 2. **事件监听**:为了让控件具有交互性,我们需要监听用户的点击或者其他事件,如`onchange`...

Global site tag (gtag.js) - Google Analytics