我希望时间能够作为这个时间来表达#14; Thu Jan 01 08:40:38 GMT + 01:00 1754"
所以我这样做了:
Date datu = new Date();
datu.setYear(1754);
datu.setMonth(0);
datu.setDate(1);
DateFormat.format("%tc", datu);
// DATU = Thu Jan 01 08:40:38 GMT+01:00 3654
String startTime = datu.toGMTString();
现在的问题是我在代码中将年份设置为1754。但是当我打印出来的时候。还有3654?
编辑: datu.setYear(1754-1900)可以做到这一点。但是还有另一种方式吗?
答案 0 :(得分:1)
您使用的是哪个版本的Java API? 我建议你改用java.text.SimpleDateFormat和java.util.Calendar。 您的代码看起来像这样:
Calendar cal = Calendar.getInstance();
cal.set(1754, 0, 1);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // <- customize your format
sdf.format(cal.getTime()); // <- get your string
date.toGMTString()方法也已弃用,因此最好避免使用它。
答案 1 :(得分:1)
请尝试这样:
SimpleDateFormat sdf = new SimpleDateFormat("E MMM dd hh:mm:ss 'GMT'Z yyyy");
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR,1754);
c.set(Calendar.MONTH, 0); // JAN
c.set(Calendar.DATE, 1);
System.out.println(sdf.format(new Date(c.getTimeInMillis())));
输出
Tue Jan 01 05:23:55 GMT+0800 1754
答案 2 :(得分:0)
似乎date.SetYear是deprecated。根据文档,您应该使用Calendar.set(Calendar.YEAR,year)。
答案 3 :(得分:0)
正如你所说,date.setYear(所需年份 - 1900)解决了这个问题。值得注意的是,该方法已被弃用,您最好使用Calendar类,它不需要从年份中减去1900。使用日历实现您正在执行的操作的代码片段如下所示:
Calendar calendar =Calendar.getInstance();
calendar.setTime(date);// note that the date object here will be datu according to
//your code. It could be any object of the Date class
int year = calendar.get(Calendar.YEAR);
希望这有帮助。
如果能解决您的问题,请随时将其标记为答案。 祝你好运!