Java有关日期转换的问题

1.将2008-3-23格式的日期转换成2008年3月23日的格式

2.随机产生3个52-307的整数并找出数值居中的数

帮忙小弟哈 谢谢!
特别是那个日期格式转换写清楚点

//转换日期格式
String oldDate = "2008-3-09";
int year, month, day;
String[] dates = oldDate.split("-");
year = Integer.parseInt(dates[0]);//获得年月日
month = Integer.parseInt(dates[1]);
day = Integer.parseInt(dates[2]);
GregorianCalendar d = new GregorianCalendar(year, month - 1, day);//通过年月日创建一个GregorianCalendar对象,因为java0月表示1月,所以月份要减1
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");//日期格式对象yyyy表示年MM表示月dd表示天
String newDate = sdf.format(d.getTime());//转换日期格式
System.out.println(newDate);

//随机产生3个52-307的整数并找出数值居中的数

Random random = new Random();//随机对象
int[] nums = new int[3];//长度为3的int数组用以保存产生的随机数
for(int i = 0; i <= 2; i++) {
nums[i] = random.nextInt(256) + 52;//为随机数组用产生的随机数赋值 因为random.nextInt(256)产生的是0-255的数 而你要52-307所以+52就行
}
Arrays.sort(nums);//为随机数组排序
for(int num : nums) {//输出一下数组
System.out.println(num);
}
System.out.println("中间的数是:" + nums[1]);//因为已经排序了 所以居中的数就是中间那个
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-17
给你看个例子,希望对你有所帮助!

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

SimpleDateFormat e=new SimpleDateFormat("yyyy-MM-dd");

Date date = new Date();
System.out.println(e.format(date));
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(calendar.DAY_OF_MONTH, +1);
date = calendar.getTime();

System.out.println(e.format(date));

}

}

结果为:

2008-07-31
2008-08-01

java.sql.Date 只存储日期数据不存储时间数据
// 会丢失时间数据
preparedStatement.setDate(1, new java.sql.Date(date.getTime()));
//可以这样来处理
preparedStatement.setTimestamp(1, new java.sql.Timestamp(new java.util.Date().getTime()));
//想要得到完整的数据,包括日期和时间,可以这样
java.util.Date d = resultSet.getTimestamp(1);
//这样处理更合适一些,可以避免一些潜在Timestamp 问题
java.util.Date d = new java.util.Date(resultSet.getTimestamp(1).getTime());
这样的话:
往数据库存储的时候可以接收 java.util.Date类型 再用getTime()方法得到代表那个Date对象的long值,再以这个long值 构造一个Timestamp对象 存进数据库中.
从存数据库里取的时候,可以先得到Timestamp用他的getTime()方法得到long值,再以这个long值构造一个java.util.Date对象,这样就可以对这个Date对象操作了.例如 new SimpleTimeFormat("yyyyy-MM-dd HH:mm:ss").format()等等
第2个回答  2010-06-17
public class L {
public static void main(String[] args) {
int a[] = new int[3];
int b;
for (int i = 0; i < 3; i++) {
a[i] = (int) (Math.random() * 255 + 52);
System.out.println("第" + i + "个数是:" + a[i]);
}
for (int j = 0; j < 2; j++) {//冒泡排序法
for (int i = 0; i < 2 - j; i++) {
if (a[i] > a[i + 1]) {
b = a[i + 1];
a[i + 1] = a[i];
a[i] = b;
}
}
}
System.out.println("处在中间的是:" + a[1]);
}
}

格式化时间就如一楼一样,如一楼SimpleDateFormat(String pattern),换个参数pattern的格式就行了。

如果你想直接将格式直接转化,那就很有难度了。如果给定了所给日期的Date对象,就可以直接调用上边的方法换成自己想要的格式。但是如果没有给定,那就只能把你给的格式中的字符串分离出来向楼上那样处理了。。本回答被提问者采纳
第3个回答  2010-06-17
new SimpleDateFormat("yyyy年MM月dd日").format("2008-3-23");

int a=Math.round(Math.random()*255+52.5);
int b=Math.round(Math.random()*255+52.5);
int c=Math.round(Math.random()*255+52.5);
if ((a-b)*(a-c)) {System.out.println(a);}//a中间
if ((c-b)*(c-a)) {System.out.println(c);}//c中间
if ((b-a)*(b-c)) {System.out.println(b);}//b中间
第4个回答  2010-06-17
import java.text.SimpleDateFormat;

public class ccc {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
System.out.println(sdf.format(System.currentTimeMillis()));
}
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网