我希望生成基于文件名的日期,我认为字符串名称将返回20151027_161053.mp4。
实际上它返回2051_161053.mp4,似乎年,月,日都加了2051 = 2015 + 10 + 27-1,但似乎没有添加161053。
我的代码有什么问题?谢谢!
Calendar c = Calendar.getInstance();
int year=c.get(Calendar.YEAR);
int month=c.get(Calendar.MONTH);
int day=c.get(Calendar.DAY_OF_MONTH);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
int sencond=c.get(Calendar.SECOND);
String name;
name=year+month+day+"_"+hour+minute+sencond+".mp4";
答案 0 :(得分:5)
使用SimpleDateFormat以您需要的格式检索名称。
SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd_hhmmss", Locale.US)
String name = f.format(c.getTime());
您还可以阅读有关java的运算符优先级的here
答案 1 :(得分:2)
首先,您添加年,月和日,然后通过附加"_"
将其强制转换为String,然后追加小时,分钟和秒将导致将它们转换为String。
答案 2 :(得分:2)
它被添加因为int + int = int;所以你需要使它成为int + String + int,即= String 试试这个:
Calendar c = Calendar.getInstance();
int year=c.get(Calendar.YEAR);
int month=c.get(Calendar.MONTH);
int day=c.get(Calendar.DAY_OF_MONTH);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
int sencond=c.get(Calendar.SECOND);
String name;
name=year+""+month+""+day+"_"+hour+""+minute+""+sencond+".mp4";
答案 3 :(得分:1)
您正在使用+
上的int
操作,并带有以下声明:
year+month+day+"_"+hour+minute+sencond+".mp4";
它等同于此,因为您首先添加整数,然后仅在" _" Java将其转换为String
:
((int) (year+month+day)) + "_" + hour + minute + sencond + ".mp4";
首先将您的int
投放到String
或使用String.append()
。有很多方法可以写这个:)
编辑:或者如上所述,使用DateFormat
更清洁。
答案 4 :(得分:1)
尝试
"a"
从左到右评估Java表达式。因此,对于您的旧陈述,它将添加((年+月)+日)。之后,它会将总和转换为字符串广告附加name = "" + year+month+day+"_"+hour+minute+sencond+".mp4";
。现在你为所有这些整数(小时,分钟和秒)添加一个字符串,因此它们将被隐含地转换为字符串!
如果在此语句的开头添加"_"
,则添加到其中的每个整数都将转换为字符串并附加!
答案 5 :(得分:0)
您必须使用{
"user_id": "masha@meeshka.com",
"password": "mashakawa",
"user_profile": {
"name": "Masha",
"city": "New York",
"email": "maasha@kawa.com",
"age": 20
},
"user_settings": {
"phone_number": "+91898342123"
}
}
代替String
。根据{{3}}
+ Additive运算符(也用于字符串连接)
int
用于连接+
。否则用于添加。因此,将String
转换为ìnt
将解决问题
String
修改强>
您还可以使用String year=c.get(Calendar.YEAR) + "";
String month=c.get(Calendar.MONTH) + "";
String day=c.get(Calendar.DAY_OF_MONTH) + "";
String hour = c.get(Calendar.HOUR_OF_DAY) + "";
String minute = c.get(Calendar.MINUTE) + "";
String sencond=c.get(Calendar.SECOND) + "";
String name = year + month + day + "_" + hour + minute + sencond + ".mp4";
StringBuilder