Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Java中特定格式的时间_Java_Android_Time_Format - Fatal编程技术网

Android Java中特定格式的时间

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

我希望将时间表示为“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吗

编辑:
达图。塞特伊尔(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

您可以在这里找到所有格式化模式元素