java - 如何将给定的偏移时间(以秒为单位)转换为 +hh :mm in java? 等格式

标签 java timezone liferay convert-tz

我想提供时区支持..因为我将日期值与UTC时间一起存储在数据库中,然后我根据用户本地时区转换时间..因为我在中使用这一行我的数据库查询

CONVERT_TZ(modifiedtime,'+00:00','+05:30')这将为我提供印度标准时间的本地时区...但我的问题是我只有秒数和特定用户的 ID 偏移量..

无论如何,我可以将偏移量转换为类似 +05:30 or say +04.00 ,+04.30.. 的格式 任何人都可以给我正确的解决方案,如果我可以将以秒为单位的偏移量转换为类似 +hh:mm 的格式这样我就可以直接给它查询...

我正在使用liferay 6.1门户,因为我已经创建了我的自定义portlet..所以我需要用java语言编写这个代码...所以请有人指导我吗?

最佳答案

以下内容可能会更短一些并且更方便

private static SimpleDateFormat plus = new SimpleDateFormat("+hh:mm");

private static SimpleDateFormat minus = new SimpleDateFormat("-hh:mm");

private static String getTimeCode(int seconds) {
    SimpleDateFormat simpleDateFormat = (seconds < 0) ? minus : plus;
    if (seconds < 0) seconds = 12 * 3600 - seconds;
    simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
    return simpleDateFormat.format(new Date(seconds * 1000));
}

int seconds = 5 * 3600 + 30 * 60;
String format = getTime(seconds); //+05:30
format = getTime(-1 * seconds);   //-05:30

以上代码可能并不适用所有编码标准,但是 SO 的缩写

关于java - 如何将给定的偏移时间(以秒为单位)转换为 +hh :mm in java? 等格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15081930/

相关文章:

java - request.getParameter ("f") 计算结果为 null

java - 在 session 超时时设置 Liferay Hook

java - 在带有 Spring Data JPA 的 hibernate 中使用 xml 配置而不是 @Type 注释

java - Play Framework WebSocket 示例 - 只有一个真实源(没有假生成器)

java - 服务器端更改客户端发送的日期/时间

ruby-on-rails - 是否存在 Ruby 1.8.7 time.strftime %z 错误?

java - Tomcat 的系统属性 'tomcat.bind.address' 是什么?

java - Android Studio Camera2预览屏幕无法添加UI

java - Java 的 TimeZone 是线程安全的吗?

hook - Liferay文档库: execute method on document download