标签: apache-commons-dateutils

Apache DateUtils截断WEEK

我正在使用Apache commons-lang3 DateUtils.truncate(Calendar calendar, int field)方法来"切断"Calendar对象的不必要字段.现在当field参数获得值时Calendar.WEEK_OF_MONTH,它会抛出一个

java.lang.IllegalArgumentException: The field 4 is not supported

truncate()方法的文档说:

/**
 * <p>Truncates a date, leaving the field specified as the most
 * significant field.</p>
 *
 * <p>For example, if you had the date-time of 28 Mar 2002
 * 13:45:01.231, if you passed with HOUR, it would return 28 Mar
 * 2002 13:00:00.000.  If this was passed with MONTH, it would
 * return 1 Mar 2002 0:00:00.000.</p>
 * …
Run Code Online (Sandbox Code Playgroud)

java apache-commons-lang apache-commons-dateutils

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

在Java中将日期字符串转换为Epoch

有没有办法在Java中将给定的DateString转换为Milliseconds(Epoch长格式)?示例:我想转换

public static final String date = "04/28/2016"; 
Run Code Online (Sandbox Code Playgroud)

到毫秒(epoch).

java epoch apache-commons-dateutils

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

使用 Java 在给定上一季度结束日期的情况下查找下一个季度结束日期

我有上个季度的季度结束日期让它成为30-09-20,要求是找到下一个季度的结束日期即31-12-20。我使用下面的代码来做同样的事情,但在某些情况下它会给出错误的输出。这个解决方案应该适用于所有方面。

String str = "30-09-20";
SimpleDateFormat format = new SimpleDateFormat("dd-MM-yy");
Date date = format.parse(str);
Date newDate = DateUtils.addMonths(date, 3);
System.out.println(newDate);//Dec 30 - It should be 31 Dec
Run Code Online (Sandbox Code Playgroud)

java datetime date java-8 apache-commons-dateutils

5
推荐指数
2
解决办法
1538
查看次数

DateUtils.parseDate异常

我似乎无法让这个工作,它说未知的模式字符 - "T"

无法解析日期2011-07-22T12:01:34.9455820

Date theDate = DateUtils.parseDate(notif.dateStr, new String[]{"yyyy-MM-ddTHH:mm:ss.S"});
Run Code Online (Sandbox Code Playgroud)

这也不起作用(这是我先做的,在这种情况下它只是给出了一个解析异常):

Date theDate = DateUtils.parseDate(notif.dateStr);
Run Code Online (Sandbox Code Playgroud)

我的错误在哪里?

java datetime apache-commons-dateutils

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

DateUtils.getRelativeTimeSpanString返回格式化的日期字符串,而不是“前几小时/分钟”

我在尝试获取DateUtils.getRelativeTimeSpanString以返回其在Android中应该遇到的问题时遇到了严重的问题。

我在这里经历过每个类似的问题,而发布的解决方案都没有起作用或没有意义。

这是我的代码:

CharSequence relativeDate = 
DateUtils.getRelativeTimeSpanString(System.currentTimeMillis(), 
            currentNewsItem.getTimeInMilliseconds(), 
            DateUtils.HOUR_IN_MILLIS, DateUtils.FORMAT_ABBREV_RELATIVE);
            dateView.setText(relativeDate);
Run Code Online (Sandbox Code Playgroud)

currentNewsItem.getTimeInMilliseconds方法确实确实返回了很长的时间(例如,刚过去1521759734它看起来正确),并且getRelativeTimeSpanString将正确格式的日期字符串以“ 2018年3月23日”的格式传递给视图,因此它知道正确的日期。但是我需要它通过“ x小时前”或“ x分钟前”,而且我无法终生弄清楚为什么不是这样。

我已经检查了模拟器上的时间,并且问题出现在我的设备上,因此不是时区设置。

文档说,如果时间跨度大于7天,它将恢复为这样的日期字符串,但是我检查了过去的时间,因为旧时间已经过去,转换器网站显示这是4小时前的确切时间。此外,它显示的是正确的日期(今天),而不是小时/分钟前。

我已经尝试过将HOUR_IN_MILLIS,MINUTES_IN_MILLIS和SECONDS_IN_MILLIS常量用于第三个参数,并且尝试删除了最后一个缩写参数,但结果仍然相同。

我尝试了各种公共方法签名来尝试查找可能有效的签名,但它们都具有相同的结果。

有没有人遇到过这种情况,或者有人可以指出我要去哪里错了?非常感谢。

android android-date apache-commons-dateutils android-dateutils java-date

0
推荐指数
1
解决办法
1837
查看次数

Apache DateUtils无法解析2018-03-11 02:00:00夏令时时间戳

public static void main(String[] args){
        Date date = null;
        try {
            date = DateUtils.parseDateStrictly("2018-03-11 01:59:00", "yyyy-MM-dd HH:mm:ss");
            System.out.println(date.getTime());
            date = DateUtils.parseDateStrictly("2018-03-11 02:00:00", "yyyy-MM-dd HH:mm:ss");
            System.out.println(date.getTime());
        }catch(Exception e) {
            e.printStackTrace();
        }
    }
Run Code Online (Sandbox Code Playgroud)

第一个时间戳被成功解析,但第二个时间戳无法解析.org.apache.commons.lang3.time.DateUtils有错误吗?我正在使用commons-lang3-3.4.jar

1520751540000
java.text.ParseException:无法在org.apache.com上的org.apache.commons.lang3.time.DateUtils.parseDateWithLeniency(DateUtils.java:401)处解析日期:2018-03-11 02:00:00位于com.ecw.vocabulary.mapper.impl.Test.testMetoo的org.apache.commons.lang3.time.DateUtils.parseDateStrictly(DateUtils.java:321)的.lang3.time.DateUtils.parseDateStrictly(DateUtils.java:343) (Test.java:59)at com.ecw.vocabulary.mapper.impl.Test.main(Test.java:40)

java apache-commons java-8 apache-commons-dateutils

-1
推荐指数
1
解决办法
205
查看次数