我来自C#世界,所以对Java还没有太多经验.Eclipse刚刚告诉他们Date已经弃用了.
Person p = new Person();
p.setDateOfBirth(new Date(1985, 1, 1));
Run Code Online (Sandbox Code Playgroud)
为什么?应该使用什么(特别是在上面的情况下)呢?
我正在添加这个问题,因为我是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
我正在创建一个基于网络的系统,该系统将在世界各国使用.必须存储的一种数据是日期和时间.
使用Java日期和时间类与第三方库(如Joda时间)相比有哪些优缺点?我想这些第三方库存在的原因很充分,但我自己从未真正比较过它们.
我对Date类的Java API感到困惑.所有内容似乎都已弃用,并且链接到Calendar类.所以我开始使用Calendar对象做我想用Date做的事情,但直觉上当我真正想要做的就是创建和比较两个日期时,使用Calendar对象会让我感到困扰.
有一个简单的方法吗?现在我做
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(0);
cal.set(year, month, day, hour, minute, second);
Date date = cal.getTime(); // get back a Date object
Run Code Online (Sandbox Code Playgroud) 我有一个java.util.Date对象或一个java.util.Calendar对象.如何在java.time框架中将其转换为正确的类型?
我听说我们现在应该使用java.time类型来处理大部分业务逻辑.使用尚未针对java.time更新的旧代码时,我需要能够来回转换.什么类型映射到java.util.Date或java.util.Calendar?
使用jsf 2.2.0.
对于所有日期,它似乎删除了一天.当我点击8 nov时,它显示11/08/2011.但是它将2011年11月7日存储在我的托管bean中的Date字段中.
我住在新加坡,想知道这是否与时区有关.
我希望从当前时间开始前一天(24小时).
例如,如果当前时间是 Date currentTime = new Date();
2011-04-25 12:15:31:562 GMT
如何确定时间即
2011-04-24 12:15:31:562 GMT
是否有任何特定原因在API中使用Date类(例如,在员工出生日期字段中)而不是long或Long.
有一些关于这个的讨论: java-date-vs-calendar,但我想知道是否有任何理由使用Dates,当long(或Long)似乎更简单.
当然我会使用TimeZone和SimpleDateFormatter在GUI中解析和显示日期,也可能使用Calendar来执行操作,但我只关心这个问题中数据模型/ API中日期的存储和表示.
更新:我不选择Date的一个原因的例子是它是可变的.因此,如果我在API中公开Date,调用者可以调用setTime(long),这似乎违反了基本封装.对我而言,这似乎超过了使用Date提供的额外清晰度的好处,因为我可以调用long属性timeInMillisecondsSinceEpoch并将相同的信息传递给调用者.
我有一个简单的java对象,有几个日期属性,我似乎总是改变我的想法如何定义它们.属性应该定义为日期对象还是字符串?该对象将用于struts 1.3应用程序,其中iBatis作为持久层,mysql作为数据库.数据库列定义为datetime,它们可能为null,我通常不关心时间部分.
public Date getForcastDate();
Run Code Online (Sandbox Code Playgroud)
要么
public String getForcastDate();
Run Code Online (Sandbox Code Playgroud)
大多数现有的代码库都使用字符串,但这对我来说似乎并不合适.
java ×8
date ×7
datetime ×4
android ×1
calendar ×1
deprecated ×1
java-time ×1
jodatime ×1
netbeans ×1
primefaces ×1
threetenabp ×1
threetenbp ×1
time ×1
utilities ×1