写点什么

Java 进阶 (二十八)SimpleDateFormat 格式化日期问题

  • 2022 年 9 月 20 日
    上海
  • 本文字数:2964 字

    阅读完需:约 10 分钟

Java进阶(二十八)SimpleDateFormat格式化日期问题

一、前言


      发现一个问题,经过以下语句处理后,发现 12:27:45 转换后成为了 00:27:45。


DateFormat df = null;if(DATE1.trim().length() == 10){	df = new SimpleDateFormat("yyyy-MM-dd");} else {	df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");}try {  Date dt1 = df.parse(DATE1);  Date dt2 = df.parse(DATE2);  long time = (dt1.getTime() - dt2.getTime())/(1000);  return time;} catch (Exception exception) {	exception.printStackTrace();	return (long) 0;}
复制代码


      原来df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");是这句话搞的鬼,这是采用的 12 小时制,若需采用 24 小时制则需变为df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");



​​

二、Could not create the view: An unexpected exception was thrown

 

      在将 web 项目部署到 tomcat 时,控制台输出以下内容:

 


      这个问题的出现是在启动 myeclipse 之后出现的,这时还没有启动 tomcat,因此可以排除 tomcat 中项目代码问题。应该是 myeclipse 在初始化工作空间 workspace 的时候出的问题。

 仔细看下错误发现有一条 at com.genuitec.eclipse.ast.deploy.core.Deployment.这个错误,于是到工作空间下面的 D:\Workspaces\.metadata\.plugins\org.eclipse.core.runtime\.settings 目录下面找到了名称为 com.genuitec.eclipse.ast.deploy.core 的 prefs 文件,打开文件一开,哈哈,原来里面都是原来的一些项目信息,怪不得会报 java.lang.NullPointerException 错误呢。果断将此文件删除,重启 myeclipse10 问题解决。

三、java 判断字符串编码类型


public static String getEncoding(String str) {             String encode = "GB2312";            try {                if (str.equals(new String(str.getBytes(encode), encode))) {                     String s = encode;              return s;           }             } catch (Exception exception) {       }             encode = "ISO-8859-1";            try {                if (str.equals(new String(str.getBytes(encode), encode))) {                     String s1 = encode;                    return s1;                 }             } catch (Exception exception1) {             }             encode = "UTF-8";            try {                if (str.equals(new String(str.getBytes(encode), encode))) {                     String s2 = encode;                    return s2;                 }             } catch (Exception exception2) {             }             encode = "GBK";            try {                if (str.equals(new String(str.getBytes(encode), encode))) {                     String s3 = encode;                    return s3;                 }             } catch (Exception exception3) {             }            return "";         }
复制代码


四、​Web 服务调用

      有朋友问了一个问题:如何调用已知的音乐服务接口,服务文档如下:

      music 接口

      查看代码之后,按照以往的服务调用方法实现,结果无法实现。很是费解,求教大师兄之后,问题,迎刃而解,只能说自己需要学习的地方还有很多。

     完整代码如下:


package plan.http.util; import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.List; import org.apache.http.HttpEntity;import org.apache.http.NameValuePair;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.message.BasicNameValuePair;import org.apache.http.util.EntityUtils; public class HttpClientUtil { public static void main(String[] args) throws Exception {HttpClientUtil.getByHttpPost();} public static String getByHttpPost() throws Exception { // 1.创建HttpClient对象。(创建默认的httpClient实例.)CloseableHttpClient httpclient = HttpClients.createDefault();// 首页String indexStr = "http://music-download.dev.fotoable.net/musics/lists";// 搜索String searchStr = "http://music-download.dev.fotoable.net/public/search";// 2.创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建HttpPost对象。(创建httppost)HttpPost httppost = new HttpPost(searchStr);List<NameValuePair> formparams = new ArrayList<NameValuePair>();// 3.如果需要发送请求参数,可调用HttpGet、HttpPost共同的setParams(HetpParams params)方法来添加请求参数;// 对于HttpPost对象而言,也可调用setEntity(HttpEntity entity)方法来设置请求参数。// 关键词搜索传参(创建参数队列)formparams.add(new BasicNameValuePair("keyword", "See you again"));// formparams.add(new BasicNameValuePair("pwd", "123"));UrlEncodedFormEntity uefEntity;try {uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8");httppost.setHeader("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0");httppost.setHeader("Connection", "keep-alive");httppost.setHeader("Accept-Language","zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3");httppost.setHeader("Accept-Encoding", "gzip, deflate");httppost.setHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");httppost.setHeader("JSESSIONID","536020F424630F22DB1F4EAEAD8E83BD");httppost.setEntity(uefEntity);System.out.println("executing request " + httppost.getURI());// 4.调用HttpClient对象的execute(HttpUriRequest request)发送请求,该方法返回一个HttpResponse。CloseableHttpResponse response = httpclient.execute(httppost);try {HttpEntity entity = response.getEntity();if (entity != null) {System.out.println("--------------------------------------");System.out.println("Response content: "	+ EntityUtils.toString(entity, "UTF-8"));System.out.println("--------------------------------------");}} finally {response.close();}} catch (ClientProtocolException e) {e.printStackTrace();} catch (UnsupportedEncodingException e1) {e1.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {try {// 5. 释放连接。无论执行方法是否成功,都必须释放连接httpclient.close();} catch (IOException e) {e.printStackTrace();}}return null;}}
复制代码


发布于: 刚刚阅读数: 5
用户头像

No Silver Bullet 2021.07.09 加入

岂曰无衣 与子同袍

评论

发布
暂无评论
Java进阶(二十八)SimpleDateFormat格式化日期问题_Java_No Silver Bullet_InfoQ写作社区