相关疑难解决方法(0)

如何在Android Project中使用ThreeTenABP

我正在添加这个问题,因为我是Java和Android的新手,我搜索了几个小时试图解决这个问题.答案来自相关答案的组合,所以我想我会记录我为其他可能正在努力的人学到的东西.见答案.

对于一些背景知识,我的经验主要是PHP的Web开发和一点Ruby.我唯一的操作系统是Linux(Ubuntu Studio),我(不情愿地)在Android Studio 2.1.2中开发我的第一个Android应用程序.我的Java设置如下:

>java -version
> openjdk version "1.8.0_91"
> OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~15.10.1-b14)
> OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
Run Code Online (Sandbox Code Playgroud)

datetime android android-gradle-plugin threetenbp threetenabp

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

将时间设置为00:00:00

我在重置Java时遇到了问题.对于给定的日期,我想将小时数设置为00:00:00.

这是我的代码:

/**
     * Resets milliseconds, seconds, minutes and hours from the provided date
     *
     * @param date
     * @return
     */
    public static Date trim(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.MILLISECOND, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.HOUR, 0);

        return calendar.getTime();
    }
Run Code Online (Sandbox Code Playgroud)

问题是,有时候是时间12:00:00,有时是时候00:00:00,当我查询数据库中保存的实体07.02.2013 00:00:00和存储的实际实体时间时,12:00:00查询失败.

我知道12:00:00 == 00:00:00!

我正在使用AppEngine.这是一个appengine bug,问题还是其他一些问题?或者它取决于其他东西?

java java.util.calendar

113
推荐指数
5
解决办法
19万
查看次数

如何在java中设置日期对象的时间

Date用Java 创建了一个对象.当我这样做时,它显示如下:date=Tue Aug 09 00:00:00 IST 2011.结果,似乎我的Excel文件减少了一天(27 feb变为26 feb,依此类推)我认为一定是因为时间.我怎样才能把它设置为下午5:30?

java datetime calendar date

60
推荐指数
3
解决办法
18万
查看次数

是否可以使用Java 8将日期截断为Month?

我希望将毫秒截断到几天,我可以使用

Instant.now().truncatedTo(ChronoUnit.DAYS).toEpochMilli()
Run Code Online (Sandbox Code Playgroud)

但我无法截断ChronoUnit.MONTH(它抛出异常).我需要使用日历吗?

java truncate java-8 java-time

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

今年的第一天

我在postgresql数据库中有以下查询

SELECT * 
FROM accounts 
where insertdate BETWEEN '2012-01-01' AND CURRENT_TIMESTAMP
Run Code Online (Sandbox Code Playgroud)

那么如何才能替换当年'2012-01-01'第一天的询问

还有一个问题.当我在帐户表中有一个新记录时,同一时刻运行上面的选择,所以它不会给我带来我刚刚制作的记录.这是否合理?超越它的最佳方法是什么?

sql postgresql

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

如何从Date对象中修剪分钟,小时和秒?

我需要制作日期是键的地图.如果2个日期对象具有相同的getTime()方法值,则它们是等于的.

我只对年,月,日感兴趣.如何trim获得"清除"日期不必要的小时和分钟?

java date

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

使用Java Stream计算项目列表中日期的出现次数

我有一个带有(java.util.)Date属性的项目列表,我想为从最早的日期到现在的每一天创建一个DataSeriesItem .这是一个带有时间轴的图表系列.

该DataSeriesItem的创建将如下所示:
DataSeriesItem seriesItem = new DataSeriesItem(Date, occurrenceCount);
其中occurrenceCountDate属性与该日匹配的Items的数量.第一个参数也可以是类型java.time.Instant

我已经设法找到一种有效的方法,但我确信我的方法非常糟糕,并且可以用一个流来完成,也许两个.但是,我是溪流的初学者,不能用我的知识来做.

这有可能与流?它怎么可能会像
我不是让你真正做到我的整个重新执行,但只有我指向正确的streamfunctions和映射,你会使用,而加分它的一个例子.

这是我丑陋的解决方案:

List<?> items = myItems;
Collection<Date> foundDates = new HashSet<>();

for (Object item : items) {
    foundDates.add((Date)getPropertyValueFromItem(item, configurator.getDateProperty()));
}

//======  This is the part I am asking about ======//

Map<Instant, Integer> foundInstants = new HashMap<>();
foundDates.stream().sorted(Date::compareTo).forEach(date -> {
    Calendar c = Calendar.getInstance();
    c.clear(); // clear nanoseconds, or else equals won't work!
    c.set(date.getYear()+1900, date.getMonth(), date.getDate(), 0, 0, 0);
    if(!foundInstants.containsKey(c.toInstant())){ …
Run Code Online (Sandbox Code Playgroud)

java datetime java-8 java-stream

11
推荐指数
2
解决办法
414
查看次数

如何从Date中删除毫秒,秒,分钟和小时

我遇到了一个问题,我想比较两个日期.但是,我只想比较年,月和日.这就是我能做到的:

 private Date trim(Date date) {

        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.MILLISECOND, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.HOUR, 0);
        return calendar.getTime();
    }
Run Code Online (Sandbox Code Playgroud)

我使用此功能来修剪所有单位,但天,月和年.

现在,问题是你怎么看待它?你知道其他任何方式吗?

谢谢

java date

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

从java.util.Date中删除时间部分的正确方法是什么?

我想实现一个线程安全的函数来从java.util.Date中删除时间部分.

我试过这种方式

private static final DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
public static Date removeTimeFromDate(Date date) {
        Date returnDate = date;

        if (date == null) {
            return returnDate;
        }

        //just have the date remove the time
        String targetDateStr = df.format(date);
        try {
            returnDate = df.parse(targetDateStr);
        } catch (ParseException e) {
        }

        return returnDate;
}
Run Code Online (Sandbox Code Playgroud)

并使用synchronized或threadLocal使其成为线程安全的.但它有更好的方法在Java中实现它.看来这种方式有点冗长.我对此不满意.

java date

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

Date.toString() - sql 与 util 日期

我需要从Date对象中删除时间。这是我的尝试,

代码:

System.out.println("date " + dbDate);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("formatter.format(dbDate) " + formatter.format(dbDate));
System.out.println("final " + formatter.parse(formatter.format(dbDate)));
Run Code Online (Sandbox Code Playgroud)

输出:

date 2011-12-03 23:59:59.0
formatter.format(dbDate) 2011-12-03
final Sat Dec 03 00:00:00 IST 2011
Run Code Online (Sandbox Code Playgroud)

我想在2011-12-03. 但转换toString()Date是不同的格式。我错过了一些东西。请帮忙。

更新:

在我的应用程序中,我有两种不同的方法来获取dbDate. EXPIRY_DATE列是DATE.

第一个查询使用dbDate = (java.util.Date) rs.getDate("EXPIRY_DATE");.

为此dbDateSystem.out.println("date " + dbDate);date 2011-12-03

第二个查询使用 dbDate = rs.getTimestamp("EXPIRY_DATE");

为此dbDateSystem.out.println("date " + dbDate);date 2011-12-03 …

java date jdbc simpledateformat

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