在Android中使用“日历”指定日期时间范围

七月:

StackOverflow社区,

我目前正在从事新项目,并且刚接触Java和Android Studio。Entry用两个Calendar变量编写了自己的课程是否有更短,更简洁的方法来创建新Entry对象,如以下代码所示?

//MainActivity.java    
//....
private ArrayList<Entry> initEntrys() {
        ArrayList<Entry> list = new ArrayList<>();
        Calendar calendar = Calendar.getInstance();

        Calendar mStartDate = calendar;
        Calendar mEndDate = calendar;
        mStartDate.set(2019, 12, 20, 7, 0);
        mEndDate.set(2019, 12, 20, 10, 0);
        list.add(new Entry(mStartDate, mEndDate));

        return list;
    }

任何帮助将非常感激。:)

罗勒·布尔克(Basil Bourque):

tl; dr

请勿使用旧的日期时间类,例如Calendar仅使用java.time类。

对于具有一天中的时间但缺少时区或UTC偏移量的日期,请使用java.time.LocalDateTimeclass。

LocalDateTime.of( 2019 , 12 , 20 , 7 , 0 )  // year, month, day , hour , minute. 

避免使用旧的日期时间类

切勿使用Calendar那个班级很糟糕,设计上有缺陷。几年前,它已被JSR 310中定义的现代java.time类所取代

java.time

与传统类相反,java.time类在设计上是不可变的,因此是线程安全的。

我们不使用构造函数new,而是通过调用静态工厂方法(例如)来实例化java.time对象LocalDateTime.of

一会儿

如果您有意识地在没有时区UTC偏移的情况下工作,请使用LocalDateTime对象。

LocalDateTime start = LocalDateTime.of( 2019 , 12 , 20 , 7 , 0 ) ;  // Passing year, month, day , hour , minute. The second and fractional-second both default to zero.
LocalDateTime stop = LocalDateTime.of( 2019 , 12 , 20 , 10 , 0 ) ;

时刻

如果您要表示时刻,即时间轴上的特定点,那么该类LocalDateTime错误的

对于跟踪力矩,您需要时区的上下文(或更不希望的是,与UTC的偏移量)。为此,请使用CrackerGenZonedDateTimeAnswer中所见


Java中所有日期和时间类型的表,包括现代的和传统的


关于java.time

java.time框架是建立在Java 8和更高版本。这些类取代麻烦的老传统日期时间类,如java.util.DateCalendar,和SimpleDateFormat

要了解更多信息,请参见Oracle教程并在Stack Overflow中搜索许多示例和说明。规格为JSR 310

现在处于维护模式Joda-Time项目建议迁移到java.time类。

You may exchange java.time objects directly with your database. Use a JDBC driver compliant with JDBC 4.2 or later. No need for strings, no need for java.sql.* classes.

Where to obtain the java.time classes?

与哪个版本的Java或Android一起使用的哪个java.time库的表


本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在mysql查询中找到最接近指定日期时间的日期时间

使用基于集合的方法获取给定日期范围之间的特定日期

在SPSS中使用日期范围

未指定日期时间输入值

如何以天为单位指定日期/时间偏移

如何使用MDX查询指定日期范围

在Django模板中使用L10N为一种语言指定日期格式

如何在使用熊猫日期时间时指定日期?

SQL查询以获取特定日期范围/期间的时间范围内的记录

AntD React:在DateRangePicker中禁用特定日期的时间范围

如何在Laravel中使用口才来计算特定日期的工作时间?

如何使用groupby和lamda表达式为.loc指定日期范围?

使用github API搜索与主题相对应的存储库时,是否可以指定日期范围?

查找最接近指定日期时间的记录

如何在自定义Excel日历中的特定日期和时间范围内进行特定活动

如何在mysql中使用特定日期范围制作报告

在Java中使用日历的特定日期格式

在SQL Server中使用重叠的日期时间来汇总“掩码的”日期时间范围

如何指定给定日期对象的时间?

从特定日期时间范围获取数据

给定日期时间范围内的随机日期时间

创建具有特定日期和时间的日历

使用JavaScript获取日期范围内的特定日期

使用特定日期设置日历并获取错误的月份值

使用 Python 从 Outlook 读取电子邮件并指定日期范围

如何在 xamarin android 中使用 DateTime 对象为特定日期和时间设置警报?

R中的时间序列预测;在初始预测后绘制“事件”并生成具有指定日期范围的新预测图

如何使用NodaTime(给定日光)计算指定日期和时间的时区UTC偏移量?

如何获得指定日期范围内 R 中时间序列的每小时平均值?