从java.util.Date获取年份
我在Cassandra专栏系列中有一个日期专栏。当我使用datastax java API从这个CF检索数据时,这个日期对象可以作为从java.util.Date获取年份,java,cassandra,deprecated,datastax,java.util.date,Java,Cassandra,Deprecated,Datastax,Java.util.date,我在Cassandra专栏系列中有一个日期专栏。当我使用datastax java API从这个CF检索数据时,这个日期对象可以作为java.util.date对象 它有一个getYear()方法,但已弃用。相应的javadoc说: 从JDK版本1.1开始,由Calendar.get(Calendar.YEAR)-1900代替 如何从该日期对象正确获取年、月、日属性?一个好的选择是使用日期格式,如下所示: SimpleDateFormat sdf1 = new SimpleDateFormat(
java.util.date
对象
它有一个getYear()
方法,但已弃用。相应的javadoc说:
从JDK版本1.1开始,由Calendar.get(Calendar.YEAR)-1900代替
如何从该日期对象正确获取年、月、日属性?一个好的选择是使用日期格式,如下所示:
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy");
Date date = sdf1.parse(datetime);
String year = sdf2.format(date);
你能试一下吗
// create a calendar
Calendar cal = Calendar.getInstance();
cal.setTime(datetime); //use java.util.Date object as arguement
// get the value of all the calendar date fields.
System.out.println("Calendar's Year: " + cal.get(Calendar.YEAR));
System.out.println("Calendar's Month: " + cal.get(Calendar.MONTH));
System.out.println("Calendar's Day: " + cal.get(Calendar.DATE));
如中所述
@已弃用的公共int getYear()已弃用。从JDK版本1.1开始,
替换为Calendar.get(Calendar.YEAR)-1900。返回一个
是从包含或的年份中减去1900的结果
以该日期对象表示的时间瞬间开始,如下所示
在当地时区进行解释。返回值:表示为的年份
这个日期,减1900
要检索日期和时间字段,可以使用以下代码:
DateFormat.getDateTimeInstance().getCalendar().get(DateFormat.MONTH_FIELD)
只需将MONTH\u字段替换为一个类似“DAY\u OF\u WEEK\u FIELD”的字段,以检索一周中的某一天(我认为“1”代表星期一)或当前分钟的“MINUTE\u FIELD”,等等:)在java8中使用LocalDate对象
Date date = new Date();
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
int year = localDate.getYear();
int month = localDate.getMonthValue();
int day = localDate.getDayOfMonth();
无需使用
SimpleDataFormat
<代码>日历#get很好,而且速度更快。您必须在获取年份之前设置日期:cal.setTime(您的DateObjectfromCassandra)代码>然后你可以做cal.get(日历年)代码>@JonSkeet Yep,但OP想要的是Cassandra对象的年份,而不是当前年份你是对的@Narmer,我根据问题的标题回答。因为月份从0开始。一月=0,二月=1等@ChamilaWijayarathna如果您得到的值是java.util.Date
,那么您希望在一年中使用哪个时区?日期
只是一个时间点。可能重复