以特定格式安装Android Java的时间

时间:2012-04-20 07:45:17

标签: java android time format

我希望时间能够作为这个时间来表达#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)可以做到这一点。但是还有另一种方式吗?

4 个答案:

答案 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);

希望这有帮助。

如果能解决您的问题,请随时将其标记为答案。 祝你好运!