java8位字符串转日期格式后不正确

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java8位字符串转日期格式后不正确相关的知识,希望对你有一定的参考价值。

将一个字符串形式的数据“20150617”直接存到数据库中,但是数据库中对应的字段是date型,数据库中数据变成了“06-7月-70”,为什么?有什么方法可以用java代码将“06-7月-70”转化为“20150617”

要么就把字段改成varchar类型,要么取出来的时候进行format
SELECT TO_CHAR(tbl.birthday, 'yyyy-mm-dd') birthday FROM bi_persons tbl
,数据库就是以这种格式存储日期的
参考技术A 你就不能在数据库拿出来的时候to_char()一下?追问

亲,“06-7月-70”拿出来时候加to_char也不好使呀。。。。。。

java海中信真实面试_手写map键值对写入值和取值HashMap字符串转double格式化double保留两位小数字符串转成日期格式css内边距外边距垂直对齐垮单元格

海中信面试题

前言

面试了一下,记录一下真实的面试

手写代码:map键值对写入值和取值

最简单是声明和赋值取值


这只是简单的赋值和取值,如果要你遍历呢,是不是又不会了,我面试的时候连声明都忘了,md,手机又给扣了,完全没思路,还是平时用得少,要经常用才不会忘记

遍历

完整代码如下:

package job_interview02;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class g_海中信面试题_map键值对写入值和取值 {
	public static void main(String[] args) {
		//HashMap
		Map<String,String> map=new HashMap<>();
		//写入值
		map.put("key1", "张三");
		map.put("key2", "李四");
		map.put("key2", "王五");
		map.put("key3", "赵六");
		//取出值
		System.out.println(map.get("key1"));
		
		//上面是最基础,如果面试官继续深入
		//遍历上面所有的hashMap值
		System.out.println("遍历 ——> ");
		//方法一:普遍使用的方法
		System.out.println("方法一:普遍使用的方法");
		for (String string : map.keySet()) {
			System.out.println("key="+string+" value="+map.get(string));
		}
		System.out.println("方法二:Iterator 用迭代器的方式");
		//方法二:Iterator 用迭代器的方式
		Iterator<Map.Entry<String, String>> it=map.entrySet().iterator();
		while (it.hasNext()) {
			Map.Entry<java.lang.String, java.lang.String> entry = (Map.Entry<java.lang.String, java.lang.String>) it
					.next();
			System.out.println("key="+entry.getKey()+" value="+entry.getValue());
			
		}
		System.out.println("方法三:最推荐的一种方式,通过Map.entrySet遍历key和value,尤其的容量大时,效率高");
		//方法三:最推荐的一种方式,通过Map.entrySet遍历key和value,尤其的容量大时,效率高
		for(Map.Entry<String,String> entry:map.entrySet()){
			System.out.println("key="+entry.getKey()+" value="+entry.getValue());
		}
		
		System.out.println("方法4:通过Map.values()遍历所有的value,但不能遍历key");
		for(String v:map.values()){
			System.out.println("values"+v);
		}
	}
}

字符串转double、格式化double保留两位小数、字符串转成日期格式

字符串转double


代码

package job_interview02;

public class h_海中信面试_字符串转double_格式化double保留两位小数_字符串转成日期格式 {
	public static void main(String[] args) {
		//字符串转double
		//方式1:Double.parseDouble
		String str1="36.99";
		System.out.println("方式1:Double.parseDouble");
		double d=Double.parseDouble(str1);
		System.out.println(d);
		
		//方式2:Double.valueOf
		System.out.println("------------------------");
		System.out.println("方式2:Double.valueOf");
		double d2=Double.valueOf(str1);
		System.out.println(d2);
		
		//方式3:使用Double类的构造函数字符串转换为双精度double
		System.out.println("------------------------");
		System.out.println("方式3:使用Double类的构造函数字符串转换为双精度double");
		double d3=new Double(str1);
		System.out.println(d3);
		
	}
}

格式化double保留两位小数、格式化String类型也可保留2位小数


实际上格式化String类型也可保留2位小数
如下

注意一下Double和double的区别


字符串转成日期格式

衍生 如何将日期转为字符串,离不开 new SimpleDateFormat

转过来,如果转过去:将日期转为字符串

css内边距、外边距、垂直对齐怎么实现

padding:内边距
margin :外边界
1、内边距
padding(内边距也叫内填充)
padding-bottom 长度/百分比 元件下端边线的空隙
padding-left 长度/百分比 元件左端边线的空隙
padding-right 长度/百分比 元件右端边线的空隙
padding-top 长度/百分比 元件上端边线的空隙
简易写法:
padding:10px 一个值表示同时控制四个方向
padding:2px 4px 两个值表示第一个值控制上下 第二个值控制左右
padding:2px 6px 10px 三个值表示第一个值控制上 第二个值控制右和左 第三个值控制下 左边找右边
padding:1px 2px 3px 4px 四个值表示每个值单独控制上右下左
2、外边距
margin(外边界) 属性介绍
margin-bottom auto 自动调整空隙 长度/百分比 设置下端空隙
margin-left auto 自动调整空隙 长度/百分比 设置左端空隙
margin-right auto 自动调整空隙 长度/百分比 设置右端空隙
margin-top auto 自动调整空隙 长度/百分比 设置上端空隙
简化方案:
margin:2px 4px
margin:2px 6px 10px
margin:1px 2px 3px 4px


<style type="text/css">
div{
    width:200px;
    height:200px;
    background-color:#0F0;
    margin:100px;
    padding:10px;
}
body{
    margin:0px;
}
</style>
</head>
<body>
<div>
    6、你不能当饭吃,但没有你,我吃不下饭。  
    7、要有多大的身躯,才能撑起您那龌龊的灵魂啊!  
    8、做男人的最高境界不是你去泡妞,而是让妞来泡你。 
    9、有心才会累,无心者无所谓。 
</div>
</body>

创建一个列表、第一行是一个单元格A,第二行是两个单元格B、C怎么实现,主要考察垮单元格怎么实现


主要就是 rowspan 和 colspan这个跨单元格的使用,合并单元格
colspan=2的话就是合并两列
rowspan=2就是合并两行

手写一个连接数据库的java代码

这个面试题我非常意外,因为平时我们都用框架或者sqlHelp等用习惯了,这个最基础的反而没有去管它
① com.mysql.jdbc.Driver mysql数据库连接jar包。  获取途径: 链接:https://pan.baidu.com/s/1SFcjuut5BsO-4x3U-SdG6Q 提取码:aafz  
 ② private static final String URL = “jdbc:mysql://localhost:3306/zhaowejie?” + “useUnicode=true&characterEncoding=UTF8”; 这是数据库的连接路径
 “jdbc”是协议开头。
“mysql”是子协议数据库名称,代表数据库是mysql。
“//localhost:3306”是服务器的IP地址和端口,“zhaowejie?”代表你要连接得数据库的名字。
“useUnicode=true&characterEncoding=UTF8” 指定操作数据库使用utf-8字符编码进行操作。

     ③   private static final String USER = "root";    数据库连接名。

④ private static final String USER = “root”; 数据库连接密码
  
  测试成功
源码如下:

package test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.mysql.jdbc.Statement;

public class a_JDBC {
	
	private static final String URL = "jdbc:mysql://localhost:3306/bos?"+ "useUnicode=true&characterEncoding=UTF8";
    private static final String USER = "root";
    private static final String PASSWORD = "123456";
    
	public static void main(String[] args) {
		Connection conn = null;
		Integer id = 0;
		String userName = null;
		String userPassWord = null;
		try {
		// 1.加载驱动程序
		Class.forName("com.mysql.jdbc.Driver");
	// 2.获得数据库的连接
		conn = DriverManager.getConnection(URL, USER, PASSWORD);
	// 3.通过数据库的连接操作数据库,实现增删改查(使用Statement类)
		//query(conn, 1);
		insert(conn, 7, "zhaoweijie7", "123445");
		//update(conn, "ws", "23456", 1);
	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	} catch (SQLException e) {
		e.printStackTrace();
			}
	}
	// 查询
	private static void query(Connection conn, Integer id) throws SQLException {
		String sql = "SELECT id, userName , PassWord FROM t_user WHERE id = ?";
		PreparedStatement ps = null;
		ResultSet rs = null;
	try {
		ps = conn.prepareStatement(sql);
		ps.setInt(1, id);
		rs = ps.executeQuery();
	while (rs.next()) {
		id = rs.getInt(1);
		String userName = rs.getString(2);
		String userPassWord = rs.getString(3);
		System.out.println("_id=" + id + "  _userName=" + userName + "  _userPassWord=" + userPassWord);
		}
	} catch (SQLException e) {
		e.printStackTrace();
	} finally {
		rs.close();
		conn.close();
		ps.close();
		}
	}
	
	/**
	 * 插入 insert
	 * @param conn
	 * @param id
	 * @param userName
	 * @param userPassWord
	 * @throws SQLException
	 */
	// 
	private static void insert(Connection conn, Integer id, String userName, String PassWord) throws SQLException {

	int i = 0;
	// sql 插入的语句
	String s = "" + "insert into t_user(id,username,password) values(?,?,?)";
	PreparedStatement ps = null;

	// ResultSet rs=null;
	try {
		ps = conn.prepareStatement(s);
		ps.setInt(1, id);
		ps.setString(2, userName);
		ps.setString(3, PassWord);
		i = ps.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
	} finally {
	// rs.close();
		conn.close();
		ps.close();
		System.out.println("插入成功");
		}
	}
	//更新  update
	private static void update(Connection conn, String userName, String userPassword, Integer id) throws SQLException {
	int i = 0;
	String sql = "update users set userName = " + "'" + userName + "'" + "," + "userPassword = " + "'"+ userPassword + "'" + " " + "where id = " + id;
	Statement ps = null;

	// ResultSet rs=null;
	try {
	// ps = conn.prepareStatement(sql);
		ps = (Statement) conn.createStatement();
		i = ps.executeUpdate(sql);
		} catch (SQLException e) {
	e.printStackTrace();
	} finally {
	// rs.close();
		conn.close();
		ps.close();
	}
	}
}

总结

任重而道远,加油!!!

以上是关于java8位字符串转日期格式后不正确的主要内容,如果未能解决你的问题,请参考以下文章

java8日期时间API的一些使用 | 转字符串 | 格式化等

java中如何能把一个字符串转成日期对象

SQLSERVER 字符串转时间格式

oracle日期转换

MySql中字符串转成日期

Postgresql时间戳long转日期,转字符串,转timestamp,日期转换错误定位及解决