Android Java中特定格式的时间
我希望将时间表示为“Thu Jan 01 08:40:38 GMT+01:00 1754” 所以我这样做了:Android Java中特定格式的时间,java,android,time,format,Java,Android,Time,Format,我希望将时间表示为“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);
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吗
编辑:
达图。塞特伊尔(1754-1900)可以做到这一点。但是没有其他方法吗?似乎date.SetYear是。根据文档,您应该改用Calendar.set(Calendar.YEAR,YEAR)。正如您所说,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);
希望这有帮助
如果它解决了您的问题,请随意标记为答案。
祝你好运 您使用的是什么版本的Java API? 我建议您改用java.text.simpleDataFormat和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
Calendar cal=Calendar.getInstance();
校准集(1754,0,1);
SimpleDataFormat sdf=新的SimpleDataFormat(“yyyy-MM-dd”);// 请像这样尝试:
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
您可以在这里找到所有格式化模式元素