写一个方法对日期格式化 new Date().format("yyyy-MM-dd HH:mm:ss")

<script>

  Date.prototype.format = function (fmt) { //author: meizz
    var o = {
      "M+": this.getMonth() + 1, //月份
      "d+": this.getDate(), //日
      "h+": this.getHours(), //小时
      "m+": this.getMinutes(), //分
      "s+": this.getSeconds(), //秒
      "q+": Math.floor((this.getMonth() + 3) / 3), //季度
      "S": this.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
      if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
  }
  var timel =new Date().format("yyyy-MM-dd HH:mm:ss");
  alert(timel)
</script>

### 设置日期格式为 `yyyy-MM-dd'T'HH:mm:ss.SSSZ` 在处理日期格式为 `yyyy-MM-dd'T'HH:mm:ss.SSSZ` 时,通常会使用 `SimpleDateFormat` 类(Java 8 之前)或 `DateTimeFormatter` 类(Java 8 及以上版本)来解析或格式化日期字符串。该格式常用于 ISO 8601 标准,例如 `2023-04-01T15:30:45.678+0800`。 #### 使用 `SimpleDateFormat`(适用于 Java 7 及以下版本) ```java import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; public class Main { public static void main(String[] args) { try { // 定义目标格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.ENGLISH); // 获取当前时间 Date now = new Date(); // 格式化日期 String formattedDate = sdf.format(now); System.out.println("Formatted Date: " + formattedDate); // 解析日期字符串 String dateStr = "2023-04-01T15:30:45.678+0800"; Date parsedDate = sdf.parse(dateStr); System.out.println("Parsed Date: " + parsedDate); } catch (Exception e) { e.printStackTrace(); } } } ``` 在上述代码中,`SimpleDateFormat` 用于格式化和解析 `yyyy-MM-dd'T'HH:mm:ss.SSSZ` 格式的日期字符串。注意 `Z` 表示时区偏移,例如 `+0800` 或 `-0500`。 #### 使用 `DateTimeFormatter`(适用于 Java 8 及以上版本) ```java import java.time.OffsetDateTime; import java.time.format.DateTimeFormatter; import java.util.Locale; public class Main { public static void main(String[] args) { try { // 定义目标格式 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.ENGLISH); // 获取当前时间 OffsetDateTime now = OffsetDateTime.now(); // 格式化日期 String formattedDate = now.format(formatter); System.out.println("Formatted Date: " + formattedDate); // 解析日期字符串 String dateStr = "2023-04-01T15:30:45.678+0800"; OffsetDateTime parsedDate = OffsetDateTime.parse(dateStr, formatter); System.out.println("Parsed Date: " + parsedDate); } catch (Exception e) { e.printStackTrace(); } } } ``` 在 Java 8 及以上版本中,`DateTimeFormatter` 提供了更强大的日期时间处理能力。`OffsetDateTime` 可以处理包含时区偏移的日期时间字符串,如 `2023-04-01T15:30:45.678+0800`。 #### 处理特殊格式中的时区问题 如果日期字符串的时区格式为 `Z`(表示 UTC 时间),例如 `2023-04-01T15:30:45.678Z`,可以使用以下方式解析[^3]: ```java import java.text.SimpleDateFormat; import java.util.Date; public class Main { public static void main(String[] args) { try { // 定义目标格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.ENGLISH); // 解析日期字符串 String dateStr = "2023-04-01T15:30:45.678Z"; Date parsedDate = sdf.parse(dateStr); System.out.println("Parsed Date: " + parsedDate); } catch (Exception e) { e.printStackTrace(); } } } ``` 在此示例中,`'Z'` 被视为字面量字符,而不是时区偏移,因此可以直接解析 `Z` 结尾的日期字符串。 #### 数据库中的日期格式处理(MySQL) 如果需要将 `yyyy-MM-dd'T'HH:mm:ss.SSSZ` 格式的日期字符串插入到 MySQL 数据库中,可以使用 `STR_TO_DATE` 函数进行转换[^4]: ```sql INSERT INTO DemoTable (date_column) VALUES (STR_TO_DATE('2023-04-01T15:30:45.678+0800', '%Y-%m-%dT%H:%i:%s.%f%z')); ``` 在 MySQL 中,`%Y-%m-%dT%H:%i:%s.%f%z` 表示 `yyyy-MM-dd'T'HH:mm:ss.SSSZ` 格式,其中 `%f` 表示毫秒,`%z` 表示时区偏移。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值