2011-06-16 121 views
1

我有一个应用程序使用datepicker和timepicker来更新使用时间戳类型的mysql数据库。要更新时间戳,我需要使用14位数字字符串,如“20110616123400”一年一个月的日子小时分钟秒。所以当我打电话给DatePicker.getMonth()时,它将返回6而不是06.当月或日或小于10时,是否有任何填充0的功能?DatePicker-TimePicker到一个MySQL时间戳

.getMonth()回报1,2,... 11,12,我想回到01,02,02 ... 11,12

+0

的android是否有String.slice方法?让我知道 – 2011-06-16 09:56:31

回答

4

尝试使用的SimpleDateFormat:

SimpleDateFormat f = new SimpleDateFormat("yyyyMMddHHmmss"); 

int mYear = ... 
int mMonth = DatePicker.getMonth(); 
// ... others too... 

final Calendar c = Calendar.getInstance(); 
c.set(mYear, mMonth, mDay, mHour, mMinute); 

String yourTimestamp = f.format(c.getTime(); 

你也可以做到这一点,像这样:

int mMonth = DatePicker.getMonth(); 
String mMonthStr = (mMonth>9) ? String.valueOf(mMonth) : "0"+mMonth; 
+0

谢谢你。我真的是新的Java和忽略一些真正的基本问题 – George32x 2011-06-16 10:12:32

0

这里已经解决了类似的问题,也许不是你分别为:L但是在我看来,这将是正确的做法。

Convert 1 to 01

-1
long start = System.nanoTime(); 
for(int i=0;i<100000;i++) { 
    for(int num=1;num<100;num++) { 
     String text = (num < 10 ? "0" : ""); 
    } 
} 
long time = System.nanoTime() - start; 
System.out.println(time/99/100000); 
0

您可以直接使用下面的MySQL查询。 (concat_ws('','00',6),2);选择正确的(concat_ws('','00',6),2);返回06

0

使用

String.format("%02d", num)