标签: jodatime

如何将DateTime转换为Date

我怎样才能转换DateDateTime反之亦然?

例如

Date dt = new Date();
Run Code Online (Sandbox Code Playgroud)

现在我想转发它DateTime.

DateTime dtim = new DateTime();
Run Code Online (Sandbox Code Playgroud)

现在我想将它转换为Date.

java datetime jodatime

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

Joda DateTime vs Instant

我正在使用Joda,我正在创建一个类来存储事务的时间戳并持久保存到数据库.我应该使用一个Instant还是一个DateTime

java jodatime

21
推荐指数
1
解决办法
6540
查看次数

获取两个日期之间的周数.

我在一个项目中工作,我在Date中有两种类型.我想计算这两个日期之间的周数.日期可能是不同的年份.对此有什么好的解决方案吗?

我试图用其他主题中提出的Joda-time来实现这一点.

我不熟悉这个库,但我尝试做这样的事情:

public static int getNumberOfWeeks(Date f, Date l){
    Calendar c1 = Calendar.getInstance();
    Calendar c2 = Calendar.getInstance();
    c1.setTime(f);
    c2.setTime(l);
    DateTime start = new DateTime(c1.YEAR, c1.MONTH, c1.DAY_OF_MONTH, 0, 0, 0, 0);
    DateTime end   = new DateTime(c2.YEAR, c2.MONTH, c2.DAY_OF_MONTH, 0, 0, 0, 0);
    Interval interval = new Interval(start, end);
    Period p = interval.toPeriod();
    return p.getWeeks();
}
Run Code Online (Sandbox Code Playgroud)

但这完全错了......有什么建议吗?

java date jodatime

21
推荐指数
5
解决办法
4万
查看次数

如何编写单元测试以确保我的基于日期/时间的代码适用于所有时区和/或DST?

我正在使用JodaTime 2.1,我正在寻找一种单元测试代码的模式,该代码执行日期/时间操作以确保它在所有时区都表现良好且独立于DST.

特别:

  1. 我怎么能模拟系统时钟(所以我不必模拟所有我调用的地方new DateTime()来获取当前时间)
  2. 如何在默认时区执行相同的操作?

java timezone unit-testing jodatime dst

21
推荐指数
1
解决办法
1万
查看次数

使用Joda-Time DateTimeFormatter的genitive(波兰语语言环境)中的月份名称

我有LocalDate包含日期2012-12-28,我希望与本地的月名称(即十二月波兰)打印出来的所有格这在波兰是主格不同(grudniagrudzień分别).因为我也想使用自定义格式,我创建了自己的DateTimeFormatter使用DateTimeFormatterBuilder(在Joda-Time中,AFAIK是正确的方式):

private static final DateTimeFormatter CUSTOM_DATE_FORMATTER
    = new DateTimeFormatterBuilder()
        .appendLiteral("z dnia ")
        .appendDayOfMonth(1)
        .appendLiteral(' ')
        .appendText(new MonthNameGenitive()) // <--
        .appendLiteral(' ')
        .appendYear(4, 4)
        .appendLiteral(" r.")
        .toFormatter()
        .withLocale(new Locale("pl", "PL")); // not used in this case apparently
Run Code Online (Sandbox Code Playgroud)

输出应为" z dnia 28 grudnia 2012 r. ".

我的问题是关于标有箭头的线:我应该如何实施MonthNameGenitive?目前它扩展DateTimeFieldType并且有很多代码:

final class MonthNameGenitive extends DateTimeFieldType {
  private static final long serialVersionUID = 1L;

  MonthNameGenitive() {
    super("monthNameGenitive");
  }

  @Override
  public …
Run Code Online (Sandbox Code Playgroud)

java jodatime

21
推荐指数
1
解决办法
4767
查看次数

Jodatime将时间划分日期时间转换为millis

有人可以向我解释为什么当我试图获得一个与我自己的区域不同的DateTime的毫秒时,它会让我回到我本地机器的时区的毫秒数?我希望得到UTC的毫秒数,但我的应用程序的本地设置被设置为EST(即使我实际上在爱尔兰;))

这是代码:

  DateTimeFormatter format = DateTimeFormat.mediumDateTime();

  DateTime local = new DateTime();
  DateTime utc = new DateTime(System.currentTimeMillis(), DateTimeZone.UTC);
  System.out.println("utc zone = " +utc.getZone());
  System.out.println("UTC time: " + utc);
  long current = utc.getMillis();

  System.out.println("current: " + format.print(current));
  System.out.println("local: " + format.print(local.getMillis()));
Run Code Online (Sandbox Code Playgroud)

这是它打印的内容:

 utc zone = UTC
 UTC time: 2013-08-16T13:36:32.444Z
 current: Aug 16, 2013 9:36:32 AM
 local: Aug 16, 2013 9:36:32 AM
Run Code Online (Sandbox Code Playgroud)

目前,我认为它应该具有与UTC时间相同的日期时间?

java timezone datetime jodatime

21
推荐指数
1
解决办法
3万
查看次数

Java 8 Date相当于具有多种解析器格式的Joda的DateTimeFormatterBuilder?

我目前有一个Joda日期解析器,它使用DateTimeFormatterBuilder,我可能会收到六种不同的日期格式.

我正在迁移到Java 8的Date例程,并没有看到等效的.

如何使用Java 8 Dates做这样的事情?

DateTimeParser[] parsers = { 
    DateTimeFormat.forPattern( "yyyy/MM/dd HH:mm:ss.SSSSSS" ).getParser() ,
    DateTimeFormat.forPattern( "yyyy-MM-dd HH:mm:ss" ).getParser() ,
    DateTimeFormat.forPattern( "ddMMMyyyy:HH:mm:ss.SSS Z" ).getParser() ,
    DateTimeFormat.forPattern( "ddMMMyyyy:HH:mm:ss.SSS" ).getParser() ,
    DateTimeFormat.forPattern( "ddMMMyyyy:HH:mm:ss.SSSSSS" ).getParser() ,
    DateTimeFormat.forPattern( "yyyy-MM-dd HH:mm:ss.SSS" ).getParser() 
};

DateTimeFormatter dateTimeFormatterInput = new DateTimeFormatterBuilder()
     .append( null, parsers ).toFormatter();
Run Code Online (Sandbox Code Playgroud)

java jodatime java-time

21
推荐指数
3
解决办法
8254
查看次数

如何在Joda Time获得短月名?

有没有人知道Joda Time或Java本身是否有一个方法,它接受一个int或一个String作为参数,例如4或"4"并以短格式给出月份的名称,即1月的JAN?

我想可以截断长月份名称并将其转换为大写.

java time jodatime

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

我应该使用threeten而不是joda-time

我遇到了https://blog.joda.org/2009/11/why-jsr-310-isn-joda-time_4941.html.

1)我目前正在将Java Calendar迁移到joda-time.我想知道,我应该使用threeten而不是joda-time吗?三生产准备好了吗?

2)三个库和joda-time库可以在同一个应用程序中一起存在吗?因为我正在使用一些使用joda-time库的第三方库.

3)joda-time会不会成为一个放弃项目,因为有三个?

java jodatime jsr310

20
推荐指数
2
解决办法
3679
查看次数

将毫秒转换为Joda Date Time或转换为0000区域

请告诉我如何将毫秒转换为joda日期时间?

formatter = DateTimeFormat.forPattern("dd/MM/yyyy'T'HH:mm:ss").withZone(DateTimeZone.forOffsetHoursMinutes(00, 00));
Run Code Online (Sandbox Code Playgroud)

甚至尝试过

String millisecond="14235453511"
DateTime.parse(millisecond);
Run Code Online (Sandbox Code Playgroud)

android jodatime

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

标签 统计

jodatime ×10

java ×9

datetime ×2

timezone ×2

android ×1

date ×1

dst ×1

java-time ×1

jsr310 ×1

time ×1

unit-testing ×1