大家好,如果您还对j *** a设置时间格式不太了解,没有关系,今天就由本站为大家分享j *** a设置时间格式的知识,包括excel如何设置时间格式的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
本文目录
- J *** a时间格式转换问题
- 怎么用j *** a写日历
- j *** a如何把时间格式转为毫秒
- j *** a如何对生日(yyyymmdd)进行合法 *** 判断
- j *** a日期时间15点解析出来是07点怎么办
- J *** a如何获取Date类型且格式为yyyy-mm-dd的日期数据
- 在j *** a中如何把字符串转换成时间格式
一、J *** a时间格式转换问题
1、import j *** a.text.ParseException;
2、import j *** a.text.SimpleDateFor *** t;
3、*给定一个日期字符串,返回该字符串描述的时间
4、*计算日期需要Calendar所以要将字符串转换为Calendar然后计算时间,再将其转换回
5、*步骤:1,创建用于转化字符串到Date的SimpleDateFor *** t并指定日期格式字符串
6、* 2:将给定的日期字符串转换为Date对象
7、* 4:将转化的Date对象设置到Calendar中,使Calendar的实例 *** Date描述的日期
8、* 7:将Date对象通过SimpleDateFor *** t转化为字符串并输出;
9、public class StringToDateCalendar{
10、* String Date Calendar之间的转换
11、 public static void *** in(String[] args) throws ParseException{
12、 SimpleDateFor *** t sdf=new SimpleDateFor *** t("yyyy-MM-dd");//1
13、 Calendar calendar=Calendar.getInstance();
二、怎么用j *** a写日历
以下是两个类,请楼主分别存成两个j *** a文件:
MainFrame.j *** a是显示日历程序,Clock.j *** a是日历计算程序。编译后运行MainFrame这个类即可。
import j *** a.awt. *** nt.ActionEvent;
import j *** a.awt. *** nt.ActionListener;
public class MainFrame extends JFrame{
private static final long serialVersionUID= 1L;
JPanel panel= new JPanel(new BorderLayout());
JPanel panel2= new JPanel(new GridLayout(7, 7));
JLabel[] label= new JLabel[49];
JLabel y_label= new JLabel("年份");
JLabel m_label= new JLabel("月份");
JComboBox com1= new JComboBox();
JComboBox com2= new JComboBox();
Calendar now= Calendar.getInstance();//实例化Calendar
x_size=(int)(Toolkit.getDefaultToolkit().getScreenSize().getWidth());
y_size=(int)(Toolkit.getDefaultToolkit().getScreenSize().getHeight());
setLocation((x_size- 300)/ 2,(y_size- 350)/ 2);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
for(int i= 0; i< 49; i++){
label[i]= new JLabel("", JLabel.CENTER);//将显示的字符设置为居中
panel.add(panel1, BorderLayout.NORTH);
panel.add(panel2, BorderLayout.CENTER);
panel.add(panel3, BorderLayout.SOUTH);
panel.setBackground(Color.white);
panel1.setBackground(Color.white);
panel2.setBackground(Color.white);
panel3.setBackground(Color.white);
com1.addActionListener(new ClockAction());
com2.addActionListener(new ClockAction());
class ClockAction implements ActionListener{
public void actionPerformed(ActionEvent arg0){
c_year= Integer.parseInt(com1.getSelectedItem().toString());//得到当前所选年份
c_month= Integer.parseInt(com2.getSelectedItem().toString())- 1;//得到当前月份,并减1,计算机中的月为0-11
c_week= use(c_year, c_month);//调用函数use,得到星期几
Resetday(c_week, c_year, c_month);//调用函数Resetday
int year, month_num, first_day_num;
String log[]={"日","一","二","三","四","五","六"};
for(int i= 0; i< 49; i= i+ 7){
label[i].setForeground(Color.red);//将星期日的日期设置为红色
for(int i= 6; i< 49; i= i+ 7){
label[i].setForeground(Color.green);//将星期六的日期设置为绿色
for(int i= 1; i< 10000; i++){
for(int i= 1; i< 13; i++){
month_num=(int)(now.get(Calendar.MONTH));//得到当前时间的月份
year=(int)(now.get(Calendar.YEAR));//得到当前时间的年份
com1.setSelectedIndex(year- 1);//设置下拉列表显示为当前年
com2.setSelectedIndex(month_num);//设置下拉列表显示为当前月
first_day_num= use(year, month_num);
Resetday(first_day_num, year, month_num);
public int use(int reyear, int remonth){
now.set(reyear, remonth, 1);//设置时间为所要查询的年月的之一天
week_num=(int)(now.get(Calendar.DAY_OF_WEEK));//得到之一天的星期
@SuppressWarnings("deprecation")
public void Resetday(int week_log, int year_log, int month_log){
int month_day_score;//存储月份的天数
Date date= new Date(year_log, month_log+ 1, 1);// now
Calendar cal= Calendar.getInstance();
cal.add(Calendar.MONTH,-1);//前个月
month_day_score= cal.getActualMaximum(Calendar.DAY_OF_MONTH);//最后一天
for(int i= 7; i< 49; i++){//初始化标签
week_log= week_log+ 6;//将星期数加6,使显示正确
month_day_score= month_day_score+ week_log;
for(int i= week_log; i< month_day_score; i++, count++){
public static void *** in(String[] args){
JFrame.setDefaultLookAndFeelDecorated(true);
import j *** a.awt. *** nt.ActionEvent;
import j *** a.awt. *** nt.ActionListener;
import j *** a.text.SimpleDateFor *** t;
class Clock extends Canvas implements Runnable{
private static final long serialVersionUID= 36601240454 *** 727166L;
t=new Thread(this);//实例化线程
Thread.sleep(1000);//休眠1秒钟
}catch(InterruptedException e){
public void paint(Graphi *** g){
Font f=new Font("宋体",Font.BOLD,16);
SimpleDateFor *** t SDF=new SimpleDateFor *** t("yyyy'年'MM'月'dd'日'HH:mm:ss");//格式化时间显示类型
Calendar now=Calendar.getInstance();
time=SDF.for *** t(now.getTime());//得到当前日期和时间
三、j *** a如何把时间格式转为毫秒
1、获取毫秒数,即long类型的数值,仅能返回自 1970年 1月 1日 00:00:00 GMT以来的毫秒数。
2、一楼、二楼的回答就是正确的,不过在使用中还需要根据自身使用环境,直接使用或者进一步按需优化后再使用。
3、最常使用的就是,把String类型的日期先转换为Date类型,最后直接调用.getTime()即可,这也是比较方便的了。
4、还有就是以上提到的Timestamp类中的valueOf(String s) *** ,这里一定要注意,给定的字符串日期型数据必须符合置顶指定格式:yyyy-mm-dd hh:mm:ss[.fffffffff],否则会抛出异常。
四、j *** a如何对生日(yyyymmdd)进行合法 *** 判断
1、import j *** a.text.ParseException;
2、import j *** a.text.SimpleDateFor *** t;
3、 public static void *** in(String[] args){
4、 System.out.println(isBirthday(birthday));
5、*@param: birthday传入一个日期格式的字符串
6、*支持 yyyy-MM-dd,yyyyMMdd MM-dd-yyyy,yyyy年MM月dd日
7、*@isBirthday判断输入的字符串是否是合法的生日生日不能大于当前日期
8、 public static boolean isBirthday(String birthday){
9、//定义需要过滤的条件,可以将你期望的日期格式添加到数组中
10、//记录传入的日期字符串,转换成日期类型
11、//判断格式是否正确,默认值为false
12、 birth=new SimpleDateFor *** t(f).parse(birthday);
13、//校验日期转换后是和传入的值不相同,说明日期传入有问题
14、 if(!new SimpleDateFor *** t(f).for *** t(birth).equals(birthday)){
15、 long now=new Date().getTime();
16、 long birthTime= birth.getTime();
17、//如果当前时间小于生日,生日不合法。反之合法
18、//输入的参数类型不是日期类型,或者类型和过滤中设置的类型不匹配
五、j *** a日期时间15点解析出来是07点怎么办
1.j *** a下使用new date()获取的时间会和真实的本地时间相差8小时。
2.本地获取的时间没有错,存入数据库的时候时间相差8小时。
3.数据库时间没有错,获取到了后端,之后返回给前端相差8小时。
1.new date()调用的是jvm时间,而jvm使用的时间默认是0时区的时间,即:和北京时间将会相差8小时。
2.mybatis将本地的数据传入到mysql数据库服务器的时候,服务器会对数据进行检测,会把date类型的数据自动转换为mysql服务器所对应的时区,即0时区,所以会相差8小时。
3.springboot中对加了@RestController或者@Controller+@ResponseBody注解的 *** 的返回值默认是Json格式,
所以,对date类型的数据,在返回浏览器端时,会被springboot默认的Jackson框架转换,而Jackson框架默认的时区GMT(相对于中国是少了8小时)。所以最终返回到前端结果是相差8小时。
1.手动设置jvm时间:将时间改为第8时区的时间。
TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
2.在apprication.yml文件中配置一下数据库连接信息, *** l加上:&serverTimezone=GMT%2b8。
3.将spring的json构造器的时区改正即可,在application.yml文件中添加。
或者可以使用注解,在entity实体类的date数据上添加注解,那么数据库传回的data数据要转换为json格式的时候就是北京时间了,再次传回到前端的时候,也不会出现时区问题.
六、J *** a如何获取Date类型且格式为yyyy-mm-dd的日期数据
1、@ret *** n返回长时间格式 yyyy-MM-dd HH:mm:ss
2、*/ public static Date getSqlDate(){
3、Date sqlDate= new j *** a.sql.Date(new Date().getTime());
4、@ret *** n返回长时间格式 yyyy-MM-dd HH:mm:ss
5、*/ public static Date getNowDate(){
6、SimpleDateFor *** t for *** tter= new SimpleDateFor *** t("yyyy-MM-dd HH:mm:ss");
7、String dateString= for *** tter.for *** t(c *** rentTime);
8、ParsePosition pos= new ParsePosition(8);
9、Serializable,Cloneable,Comparable<Date>
10、概述:一个包装了毫秒值的瘦包装器(thin wrapper),它允许 JDBC将毫秒值标识为 SQL DATE值。毫秒值表示自 1970年 1月 1日 00:00:00 GMT以来经过的毫秒数。
11、为了与 SQL DATE的定义一致,由 j *** a.sql.Date实例包装的毫秒值必须通过将小时、分钟、秒和毫秒设置为与该实例相关的特定时区中的零来“规范化”。
七、在j *** a中如何把字符串转换成时间格式
1、public static void *** in(String[] args) throws Exception{
2、Date date= new SimpleDateFor *** t("yyyy-MM-dd").parse("2005-06-09");
3、String now= new SimpleDateFor *** t("yyyy年MM月dd日").for *** t(date);
4、public static void *** in(String[] args){
5、// TODO Auto-generated method stub
6、SimpleDateFor *** t df= new SimpleDateFor *** t("yyyyMMddhhmmss");
7、String dateString="20071128175545";
8、Date date= df.parse(dateString);
9、System.out.println(df.for *** t(date));
10、System.out.println(ex.getMessage());
11、J *** a指定了一些可访问的修饰符如:private、protected、public,任何 *** 或变量都可以声明为public,J *** a可以从该类之外的地方访问。因为 *** in *** 是公共的,JVM就可以轻松的访问执行它。
12、在 *** in里面args[]就是两个长度的数组:value1存在args[0]中,value2存在args[1]中。
13、args[0]存储的是命令,其后才是参数。
14、String args[ ]或者String[ ] args表示给主 *** 传一个字符串数组。
15、而args是一个字符串数组的变量名,不是关键字,是arguments的缩写,只是一个默认名,一般都习惯 *** 照写。
16、public static void *** in(String args[ ]){
17、System.out.println("This is a *** J *** a program.");
好了,关于j *** a设置时间格式和excel如何设置时间格式的问题到这里结束啦,希望可以解决您的问题哈!