【PostgreSQL】PG中日期格式化与Java中的区别

一、常用对比(年-月-日 时:分:秒)

PG中Java中
TO_CHAR(current_timestamp, ‘yyyy-MM-dd HH24:mi:ss’)LocalDateTime.now().format(DateTimeFormatter.ofPattern(“yyyy-MM-dd HH:mm:ss”))

二、pg中的数据类型格式化函数


-- 常用举例,此处按照规范应写成YYYY-MM-DD HH24:MI:SS,但pg都可以区分
-- 为了与Java中保持一致,方便记忆,所以这样写,也就是24小时制,分钟(minute)写缩写
SELECT TO_CHAR(current_timestamp, 'yyyy-MM-dd HH24:mi:ss')

用于日期/时间格式化的模板模式

模式描述
HH一天中的小时 (01-12)
HH12一天中的小时 (01-12)
HH24一天中的小时 (00-23)
MI分钟 (00-59)minute (00-59)
SS秒(00-59)
MS毫秒(000-999)
US微秒(000000-999999)
SSSS午夜后的秒(0-86399)
AM, am, PM or pm正午指示器(不带句号)
A.M., a.m., P.M. or p.m.正午指示器(带句号)
Y,YYY带逗号的年(4 位或者更多位)
YYYY年(4 位或者更多位)
YYY年的后三位
YY年的后两位
Y年的最后一位
IYYYISO 8601 周编号方式的年(4 位或更多位)
IYYISO 8601 周编号方式的年的最后 3 位
IYISO 8601 周编号方式的年的最后 2 位
IISO 8601 周编号方式的年的最后一位
BC, bc, AD或者ad纪元指示器(不带句号)
B.C., b.c., A.D.或者a.d.纪元指示器(带句号)
MONTH全大写形式的月名(空格补齐到 9 字符)
Month全首字母大写形式的月名(空格补齐到 9 字符)
month全小写形式的月名(空格补齐到 9 字符)
MON简写的大写形式的月名(英文 3 字符,本地化长度可变)
Mon简写的首字母大写形式的月名(英文 3 字符,本地化长度可变)
mon简写的小写形式的月名(英文 3 字符,本地化长度可变)
MM月编号(01-12)
DAY全大写形式的日名(空格补齐到 9 字符)
Day全首字母大写形式的日名(空格补齐到 9 字符)
day全小写形式的日名(空格补齐到 9 字符)
DY简写的大写形式的日名(英语 3 字符,本地化长度可变)
Dy简写的首字母大写形式的日名(英语 3 字符,本地化长度可变)
dy简写的小写形式的日名(英语 3 字符,本地化长度可变)
DDD一年中的日(001-366)
IDDDISO 8601 周编号方式的年中的日(001-371,年的第 1 日时第一个 ISO 周的周一)
DD月中的日(01-31)
D周中的日,周日(1)到周六(7)
ID周中的 ISO 8601 日,周一(1)到周日(7)
W月中的周(1-5)(第一周从该月的第一天开始)
WW年中的周数(1-53)(第一周从该年的第一天开始)
IWISO 8601 周编号方式的年中的周数(01 - 53;新的一年的第一个周四在第一周)
CC世纪(2 位数)(21 世纪开始于 2001-01-01)
J儒略日(从午夜 UTC 的公元前 4714 年 11 月 24 日开始的整数日数)
Q季度(to_date和to_timestamp会忽略)
RM大写形式的罗马计数法的月(I-XII;I 是 一月)
rm小写形式的罗马计数法的月(i-xii;i 是 一月)
TZ大写形式的时区缩写(仅在to_char中支持)
tz小写形式的时区缩写(仅在to_char中支持)
TZH时区的小时
TZM时区的分钟
OF从UTC开始的时区偏移(仅在to_char中支持)

三、Java中的Date Format Pattern Syntax


// java.time.format.DateTimeFormatter中对pattern letters有描述
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 2022-11-07 23:24:22
String now = LocalDateTime.now().format(formatter);

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java PostgreSQL 的 `geometry` 类型通常被映射为 `PGgeometry` 类型。`PGgeometry` 是由 `org.postgis` 包提供的一个类,它表示 PostGIS 的几何对象。 要使用 `PGgeometry` 类型,需要在项目包含 PostGIS 的相关依赖。如果使用 Maven 管理项目,可以在 pom.xml 文件添加以下依赖: ``` <dependency> <groupId>org.postgis</groupId> <artifactId>postgis-jdbc</artifactId> <version>2.5.1</version> </dependency> ``` 使用 `PGgeometry` 类型可以很方便地将 PostgreSQL 的 `geometry` 类型与 Java 的数据类型相互转换。例如,假设有一个 `mytable` 表,其包含一个名为 `geom` 的 `geometry` 列,可以使用以下代码从数据库检索该列的值: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import org.postgis.PGgeometry; public class GeometryExample { public static void main(String[] args) throws Exception { // Connect to the database String url = "jdbc:postgresql://localhost/mydatabase"; String user = "myusername"; String password = "mypassword"; Connection conn = DriverManager.getConnection(url, user, password); // Prepare and execute a SELECT statement String sql = "SELECT geom FROM mytable"; PreparedStatement stmt = conn.prepareStatement(sql); ResultSet rs = stmt.executeQuery(); // Process the results while (rs.next()) { PGgeometry geom = (PGgeometry) rs.getObject("geom"); // Do something with the geometry object // ... } // Clean up rs.close(); stmt.close(); conn.close(); } } ``` 在这个例子,`rs.getObject("geom")` 方法返回一个 `Object` 类型的对象,需要将其转换为 `PGgeometry` 类型的对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值