相关疑难解决方法(0)

如何在Joda-Time时间戳中保留时区?

我正在解析时间戳.当我读到它们时,它们被迫到我当地的时区(欧洲/伦敦).我想保留原来的时区偏移.

scala> val fmt = org.joda.time.format.ISODateTimeFormat.dateTimeNoMillis()

scala> val t = fmt parseDateTime ("2012-04-16T23:00:45-04:00")
t: org.joda.time.DateTime = 2012-04-17T04:00:45.000+01:00

scala> t.getDayOfMonth
res2: Int = 17

scala> fmt print t
res1: java.lang.String = 2012-04-17T04:00:45+01:00
Run Code Online (Sandbox Code Playgroud)

在这个例子中,来自America/New_York的时间戳被强制到欧洲/伦敦.当我将DateTime转换回String时,我希望找回我输入的原始字符串.

另外,当我问时间戳它的月份是哪一天时,我希望它说是从16日开始(因为这是它生成的地方的日期),而不是第17天(尽管那是日期是什么)在同一时刻的我的时区).

我该怎么做呢?

java timezone scala jodatime

8
推荐指数
1
解决办法
4069
查看次数

Java MySQL时间戳时区问题

我有一个java.util.Date对象,我需要将它以UTC格式插入到MySQL的datetime字段中.

java.util.Date date = myDateFromSomewhereElse;
PreparedStatement prep = con.prepareStatement(
    "INSERT INTO table (t1, t2) VALUES (?,?)");

java.sql.Timestamp t = new Timestamp(date.getTime());
prep.setTimestamp(1, t, Calendar.getInstance(TimeZone.getTimeZone("PST"));
prep.setTimestamp(2, t, Calendar.getInstance(TimeZone.getTimeZone("UTC"));
System.out.println(prep.toString());
Run Code Online (Sandbox Code Playgroud)

这给了我准备好的SQL语句字符串:

INSERT INTO table (t1, t2) VALUES ('2012-05-09 11:37:08','2012-05-09 11:37:08');
Run Code Online (Sandbox Code Playgroud)

无论我指定的时区如何,返回的时间戳都是相同的时间戳.它忽略了我指定的时区的Calendar对象.发生了什么事,我做错了什么?

java mysql timezone timestamp

7
推荐指数
2
解决办法
2万
查看次数

MySQL是否等同于Oracle的TIMESTAMP WITH TIME ZONE?

MySQL是否等同于Oracle的TIMESTAMP WITH TIME ZONE?

我需要将一个具有该数据类型的列的Oracle表映射到MySQL表中,但我似乎无法找到一种简单的方法来执行此操作而不需要使用某些MySQL函数.

谢谢和最好的问候.

mysql timezone oracle10g

5
推荐指数
1
解决办法
6575
查看次数

JodaTime - 我怎么知道在指定的时间内是否发生夏令时?

我需要知道定义的时期是否:

DateTime start;
DateTime end;
Run Code Online (Sandbox Code Playgroud)

里面有一个DST.

我正在迭代{start,end}定义的句点集合,并在每次迭代中向前移动24小时.结果期间从午夜开始,到下午午夜前1毫秒结束.我发现如果周期内有一个夏令时点,那么移位会产生不正确的结果,例如:

有:

Duration targetDuration = new Duration(24*60*60*1000L-1);
DateTime start = new DateTime("2012-03-10T00:00:00.000-08:00");
DateTime end = new DateTime("2012-03-10T23:59:59.999-08:00");   
Run Code Online (Sandbox Code Playgroud)

然后转移完成:

start = end.plusMillis(1);
end = start.plus(targetDuration);
Run Code Online (Sandbox Code Playgroud)

生产:

start = "2012-03-11T00:00:00.000-08:00"
end = "2012-03-12T00:59:59.999-07:00"   
Run Code Online (Sandbox Code Playgroud)

我想知道JodaTime中是否有任何标准API可以检查一段时间内是否有DST?

java datetime date jodatime dst

4
推荐指数
1
解决办法
3219
查看次数

标签 统计

java ×3

timezone ×3

jodatime ×2

mysql ×2

date ×1

datetime ×1

dst ×1

oracle10g ×1

scala ×1

timestamp ×1